18 Jan 2017

numpy基础

目录

欢迎在文章下方评论,建议用电脑看

numpy基础

array 的几个属性:

ndim:维度

shape:行数和列数

size:元素个数

调用方式,比如: array = np.array([[1,2,3],[2,3,4]]) array.ndim(array是一个对象,输出是2)

Numpy 的创建 array

最简单: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生成的新数组和原始数组公用一个内存,也就是说,假如更改一个数组的元素,另一个数组也将发生改变。

array的基础运算

其实就像一个数组,需要注意的是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)表示的是仅针对每一行进行从小到大排序操作

Numpy 的索引

在元素列表或者数组中,我们可以用如同a[2]一样的表示方法,同样的,在Numpy中也有相对应的表示方法。

二维:A[2]表示A的第三行所有元素,A[1, 1]表示单个元素。当然,如果要对array进行切片的话,用如下:A[1, 1:3]

Numpy array 合并和分割

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)表示的是纵向分为不对等的三分


Tags:
Stats:
comments


Share: