Numpy的使用
-
导入Numpy模块
import numpy as np
-
创建数组(一维数组、小数数组、二维数组)
# 创建一个一维数组 n1 = np.array([1, 2, 3]) # 创建一个含有小数的一维数组 n2 = np.array([0.1, 0.2, 0.3]) # 创建一个简单的二维数组 n3 = np.array([[1, 2], [3, 4]]) print("一维数组:", n1) print("小数数组:", n2) print("二维数组:\n", n3)
输出:
-
将列表转换为数组并指定类型
list = [1, 2, 3] # 创建浮点型数组 n1 = np.array(list, dtype=float) print("数组:", n1) print("数组类型:", n1.dtype) print("数组内第一个元素类型:", type(n1[0]))
-
复制数组(需要使用copy参数)
不使用时(其实是浅拷贝)更改n2数据n1同时改变了
n1 = np.array([1, 2, 3]) n2 = n1 n2[1] = 5 print(n1) print(n2)
使用copy参数
n1 = np.array([1, 2, 3]) n2 = np.array(n1, copy=True) n2[0] = 5 print(n1) print(n2)
-
修改数组维数
n1 = [1, 2, 3] # 转换为三维数组 n2 = np.array(n1, ndmin=3) print(n2) print(n2.shape)
-
创建制定形状未初始化的数组
n = np.empty([2,3]) print(n)
-
创建以0填充的数组
n = np.zeros([2, 3]) print(n)
-
创建以1填充的数组
n = np.ones([2, 3]) print(n)
-
创建指定数值填充的数组
n = np.full((3, 3), 8) print(n)
-
数组的加减乘除法运算
n1 = np.array([1, 2]) n2 = np.array([3, 4]) print(n1 + n2) print(n1 - n2) print(n1 * n2) print(n1 / n2)
-
数组的reshape操作
n = np.array( ['唧', '唧', '复', '唧', '唧', '木', '兰', '当', '户', '织', '不', '闻', '机', '杼', '声', '惟', '闻', '女', '叹', '息']) n1 = n.reshape(4, 5) print(n1)
-
使用mat创建矩阵
a = np.mat([[5, 6], [7, 8]]) b = np.mat([[1, 2], [3, 4]]) print(a) print(b) print(type(a)) print(type(b))
-
矩阵的加减乘除运算
data1 = np.mat([[1, 2], [3, 4], [5, 6]]) data2 = np.mat([1, 2]) data3 = np.mat([[5, 6], [7, 8]]) print(data1 + data2) print(data1 - data2) print(data1 / data2) print(data1 * data3)
-
数组点乘运算
n1 = np.array([1, 2, 3]) n2 = np.array([[1, 2, 3], [1, 2, 3], [1, 2, 3]]) print(np.multiply(n1, n2))
-
矩阵求转置
n1 = np.mat([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print('矩阵转置结果为:\n', n1.T)
-
矩阵求逆
n1 = np.mat([[1, 3, 3], [4, 5, 6], [7, 15, 9]]) print('矩阵的逆矩阵结果为:\n', n1.I)
-
使用Numpy内置函数进行数组加减乘除
n1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) n2 = np.array([10, 10, 10]) print('两个数组相加:') print(np.add(n1, n2)) print('两个数组相减:') print(np.subtract(n1, n2)) print('两个数组相乘:') print(np.multiply(n1, n2)) print('两个数组相除:') print(np.divide(n1, n2))
-
幂运算
n1 = np.array([10, 100, 1000]) print(np.power(n1, 3))
-
数组元素行列求和
n = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print('对数组元素求和:') print(n.sum()) print('对数组元素按列求和:') print(n.sum(axis=0)) print('对数组元素按行求和:') print(n.sum(axis=1))
-
数组元素求平均值
n = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print('对数组元素求平均值:') print(n.mean()) print('对数组元素按列求平均值:') print(n.mean(axis=0)) print('对数组元素按行求平均值:') print(n.mean(axis=1))
-
求最大最小值
n = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print('数组元素最大值:') print(n.max()) print('数组中每一列的最大值:') print(n.max(axis=0)) print('数组中每一行的最大值:') print(n.max(axis=1)) print('数组元素最小值:') print(n.min()) print('数组中每一列的最小值:') print(n.min(axis=0)) print('数组中每一行的最小值:') print(n.min(axis=1))
-
求数组中位数
n = np.array([34.5, 36, 37.8, 39, 39.8, 33.6]) # 数组排序后,查找中位数 sort_n = np.sort(n) print('数组排序:') print(sort_n) print('数组中位数为:') print(np.median(sort_n))
-
求数组方差标准差
n = np.array([34.5, 36, 37.8, 39, 39.8, 33.6]) print('数组方差:') print(np.var(n)) print('数组标准差:') print(np.std(n))
-
数组排序
n = np.array([[4, 7, 3], [2, 8, 5], [9, 1, 6]]) print('数组排序:') print(np.sort(n)) print('按列排序:') print(np.sort(n, axis=0)) print('按行排序:') print(np.sort(n, axis=1))