欢迎在文章下方评论,建议用电脑看
ndim
:维度
shape
:行数和列数
size
:元素个数
调用方式,比如:
array = np.array([[1,2,3],[2,3,4]]) array.ndim
(array是一个对象,输出是2)
最简单:a = np.array([2,23,4])
创建全零数组:a = np.zeros((3,4)) # 数据全为0,3行4列
创建全1数组:a = np.ones((3,4),dtype = np.int) # 数据为1,3行4列,数据类型是整型
用 arange 创建连续数组::a = np.arange(10,20,2) # 10-19 的数据,2步长
dtype:表示的是数据类型,也就是数组元素的数据类型
numpy数据类型dtype转换,numpy中的数据类型转换,不能直接改原数据的dtype!因为这样会导致数组长度的改变,只能用函数astype()函数,详细见这篇博文
指定数据 dtype的创建数组:a = np.array([2,23,4],dtype=np.int)
使用 reshape
改变数据的形状:a = np.arange(12).reshape((3,4)) # 3行4列,0到11
””” array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) “””
需要注意的是:通过reshape生成的新数组和原始数组公用一个内存,也就是说,假如更改一个数组的元素,另一个数组也将发生改变。
其实就像一个数组,需要注意的是c=a*b
是对应元素相乘,并不是矩阵相乘,c=b**2
表示的是各个元素都变成原来的平方。而矩阵的相乘是c_dot = np.dot(a,b)
当axis
的值为0的时候,将会以列作为查找单元, 当axis的值为1的时候,将会以行作为查找单元。比如print("min =",np.min(a,axis=1))
是所有行中的最小值,也就是说有多少行就有多少个其所在行的最小值。
np.argmin(A)
和 np.argmax(A)
两个函数分别对应着求矩阵中最小元素和最大元素的索引。,A.mean()
是求均值的;np.sort(A)
表示的是仅针对每一行进行从小到大排序操作
在元素列表或者数组中,我们可以用如同a[2]一样的表示方法,同样的,在Numpy中也有相对应的表示方法。
二维:A[2]
表示A的第三行所有元素,A[1, 1]表示单个元素。当然,如果要对array进行切片的话,用如下:A[1, 1:3]
np.vstack((A,B)
是上下合并,即对括号中的两个整体进行对应操作。np.hstack((A,B))
是一种左右合并
np.split(A, 2, axis=1)
纵向分割也就是在纵向对等分为两份,也就是;print(np.split(A, 3, axis=0))
横向分割,也就是横向对等分为三分。注意:split()只能对等分,如果不对等就会报错。如果要不对等分配,应该用这个函数array_split()
,例如np.array_split(A, 3, axis=1)
表示的是纵向分为不对等的三分