下面是一些杂碎的知识点:
首先我们说说多维数组:
数组的属性:
ndarray.ndim, 表示数组的秩是多少;
ndarray.shape,返回数组的形状;
ndarray.size,数组元素的总个数,等于shape属性中元组元素的乘积
ndarray.dtype,一个用来描述数组中元素类型的对象
ndarray.itemsize ,数组中每个元素的字节大小。
一些常用的函数
zeros()生成全为零的数组;
ones()生成合为1的数组;
empty()生成一个随机数组;
reshape()函数,,返回一个数组变形的样子。按C风格来哦,即最右边的索引变化最快;
resize()函数,和上面操作相同 ,不过它是改变原数组哦,上面的reshape()不会改变原数组的;
arange()函数,可以产生一个一维的数组哦。
ravel()函数, 它展开的函数的风格通常是C风格的,即最右边的索引变化最快;
transpose(),把数组进行转置,如索引为(2,3,4)元素变为索引为(4,3,2)的元素;
column_stack()函数,把一维数组按列组合成二维数组;
row_stack()函数,一维数组以行组合成二维数组
vstack
()沿着第一个轴组合,hstack
()函数沿着第二个轴组合
vsplit
()沿着纵向的轴分割,array split()
允许指定沿哪个轴分割。argmax()函数,求出指定的坐标轴上的最大的值的下标。
a = np.array([[2,5,3],[4,7,1]]) a.argmax(0) #求出数组a在第0轴上的最大值的下标,0轴就是列轴 #输出 array([1,1,0]) a.argmax(1) #求出数组a在第1轴上的最大值的下标,1轴就是行轴 #输出: array([1,1])newaxis
linspace()函数通过指定开始值、终值和元素的个数来创建一维数组,可以通过endpoint关键字指定是否包括终值,缺省时包括终值;
>>> np.linspace(0,5,11) array([ 0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. ])
索引,切片和迭代:
使用arange函数时,不包括终值;
可以能数组的元素的索引作切片哦,记住,索引从0开始的。当少于轴数的索引被提供时,确失的索引被认为是整个切片。
注意:迭代 多维数组是就第一个轴而言的。
数组的flat属性为数组元素的一个迭代器,可以启遍例数组中的每个元素;
随着学习继续补充
补充:
1. numpy中的数组的axis 是从0开始的,最里面的为0,外面的为1, 2等 ,最里面表示变化速度最慢的。。如一个数组 array().shape = (3, 12, 15), axes为 0 的是3, 为1的是12, 为2的是15。 其中吧,12代表了行数, 15代表了列数;
2. Numpy.mean()函数:
它的作用是计算一个 array_like 的算术平均值, 可以指定哪一个axis. .另个有两种方法使用它。
它的原型为:mean(a, axis=None, dtype=None, out=None, keepdims=False)
例子:
>>> a = np.array([[1, 2], [3, 4]]) >>> np.mean(a) 2.5 >>> np.mean(a, axis=0) array([ 2., 3.]) >>> np.mean(a, axis=1) array([ 1.5, 3.5])
上面的例子我们也可以简单这个做: a.mean(0) 或 a.mean(1)
另个,当axis的参数省略时,它会计算所有值的平均值; 建议用标准的方法写代码;