3 ndarray的属性和基本操作
3.1 ndarray的基本属性
3.2 ndarray元素类型
那么有时候我们再想,如果数组的长度不一致,那么会不会有影响呢?
通过例子,我们发现,如果构造的数据长度不一致,不会报错,但是会发出警告,也就是说这种方法,在Python里面还是支持的,但是我们发现它被单独的构造为一个list类型了,元素大小也就发生了改变,将一个列表嵌套在一个列表当中。
我们可以看看长度一致的情况:
显然是符合我们的要求的
3.3 创建ndarray的方式
创建的时候可以指定我们的数据类型
np.arange(),返回的是序列数组,最后一个取不到,一维的
np.ones(3,4),返回的是3行4列的全1数组,如果里面有三个数字,那么第一数字代表里面,有多少个单独独立的数组
np.zeros(数组,行,列)生成一个多少个独立数组,每个独立数组里面有多少行,多少列,最后类型是全0数组,如下:
np.full((n,m),value),生成一个特定维度的数组,且元素由自己定义
np.eye(n),生成一个nxn的单位矩阵
np.ones_like(array),生成一个和目标数组一样的全1数组
使用np.linspace(),形成新的一维序列数组
使用np.concatenate((array1,array2),axis=0):按照行进行拼接
np.concatenate((array1,array2),axis=1):按照列进行拼接
如果这里使用横向连接,那么就会报错,为了防止报错,我们可以使用装置功能
拼接也要注意,是否可以!!!
3.4 ndarray对象的变换
我们可以根据自己需要变换我们的一维数组,为多维数组,使用reshape(行,列)
这个方法也可以修改,但是要注意的是:resize(方法)修改的是原数组,而reshape(方法)并没有修改原数组,需要赋值给新的变量,该修改才能生效。
使用swapaxes(1,0)进行维度调换,原来的行数变成现在的列数,不改变原数组
flatten()降维处理,一维,不改变原数组
astype(np.int16),或者其他的numpy数据类型,直接拷贝数据类型格式
转换为list类型
3.5 ndarray对象的操作
索引和我们Python里面的较为相似,如果里面存在多个独立数组,那么第一个索引只取出大的数组框,然后后面对应的就是行和列
对于步长而言,我们要明确的是,索引从0开始,最后一个索引永远取不到,其次,不写出的索引为默认取到,对于步长取索引,我们按照空格方法记忆最好!