numpy具有矢量运算能力,快速、节省空间。numpy支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
1、构建矩阵: 使用array方法
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)函数参数说明:
import numpy as np #将二维列表转换成二维矩阵 a = np.array([[1,2,3], [4,5,6]]) #定义转换类型 b = np.array([2.3,3.5,3.6],dtype=int) print("a:\n",a) print("b:\n",b) 运行结果: a: [[1 2 3] [4 5 6]] b: [2 3 3]2、数组属性: shape方法:
import numpy as np a = np.array([[1,23,2],[1,3,2]]) print(a.shape) 运行结果: (2, 3) import numpy as np a = np.array(range(6)).reshape((2,3)) print(a) 运行结果: [[0 1 2] [3 4 5]]创建0/1矩阵:
import numpy as np a = np.zeros((2,2)) b = np.ones((2,2)) print("zeros:\n",a) print("ones\n",b) 运行结果: zeros: [[0. 0.] [0. 0.]] ones [[1. 1.] [1. 1.]]numpy.linspace
#在start与stop值之间等分,等分宽度为(stop-start)/num numpy.linspace(start, stop, num, endpoint, retstep, dtype)示例:
import numpy as np a = np.linspace(10,20,5) print(a) 输出结果: [10. 12.5 15. 17.5 20. ]切片和索引:
import numpy as np a = np.arange(10)[2:7:2] print(a) 输出结果: [2 4 6]矩阵合并:
import numpy as np a = np.arange(10)[1:8:2].reshape(2,2) b = np.arange(10)[2:9:2].reshape(2,2) c = np.vstack((a,b))#竖直方向上 d = np.hstack((a,b))#水平方向上 #axis = 0等效于vstack #axis = 1等效于hstack e = np.concatenate((a,b),axis = 0) f = np.concatenate((a,b),axis = 1) print("竖直:\n",c,"\n水平:\n",d) print("******************") print("2竖直:\n",e,"\n2水平:\n",f) 运行结果: 竖直: [[1 3] [5 7] [2 4] [6 8]] 水平: [[1 3 2 4] [5 7 6 8]] ****************** 2竖直: [[1 3] [5 7] [2 4] [6 8]] 2水平: [[1 3 2 4] [5 7 6 8]]示例:
import numpy as np a1 = np.array([[1,2,3],[4,5,6],[7,8,9]]) print(a1.min()) print(a1.max()) # 可以指定关键字参数axis来获得行最大(小)值或列最大(小)值 # axis=0 行方向最大(小)值,即获得每列的最大(小)值 # axis=1 列方向最大(小)值,即获得每行的最大(小)值 print(a1.max(axis=0)) print(a1.max(axis=1)) # 要想获得最大最小值元素所在的位置,可以通过argmax函数来获得 print(a1.argmax()) 运行结果: 1 9 [7 8 9] [3 6 9] 8