数组属性
NumPy 数组的维数称为秩(rank),一维数组的秩为 1,二维数组的秩为 2,以此类推。
很多时候可以声明 axis。axis=0,表示沿着第 0 轴进行操作,即对每一列进行操作;axis=1,表示沿着第1轴进行操作,即对每一行进行操作
属性 | 说明 |
---|---|
ndarray.ndim | 秩,即轴的数量或维度的数量 |
ndarray.shape | 数组的维度,对于矩阵,n 行 m 列 |
ndarray.size | 数组元素的总个数,相当于 .shape 中 n*m 的值 |
ndarray.dtype | ndarray 对象的元素类型 |
ndarray.itemsize | ndarray 对象中每个元素的大小,以字节为单位 |
ndarray.flags | ndarray 对象的内存信息 |
ndarray.real | ndarray元素的实部 |
ndarray.image | ndarray 元素的虚部 |
Numpy创建数组
方法 | 用法 | 参数说明(相同参数不重复说明) |
---|---|---|
numpy.empty (创建一个空数组) |
numpy.empty(shape, dtype = float, order = ‘C’) | shape 数组形状 dtype 数组类型 order “C” 用于C的航数组 或者’F’用于FORTRAN的列数组 |
numpy.zeros (创建一个指定大小的数组,用0填充) |
numpy.zeros(shape, dtype = float, order = ‘C’) | |
numpy.ones ( 创建指定形状的数组,数组元素以 1 来填充 ) |
numpy.ones(shape, dtype = None, order = ‘C’) |
Numpy 从数值范围创建数组从已有数组创建数组
方法 | 用法 | 参数说明(相同参数不重复说明) |
---|---|---|
numpy.arange (numpy 包中的使用 arange 函数创建数值范围并返回 ndarray 对象) |
numpy.arange(start, stop, step, dtype) | start 起始值 默认0 stop 终止值 step 步长 默认1 dtype 返回的ndarray数据类型 |
numpy.linspace (函数用于创建一个一维数组,数组是一个等差数列构成的) |
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None) | num 生成等步长的样本量 endpoint 该值为 ture 时,数列中中包含stop值,反之不包含,默认是True。 retstep 如果为 True 时,生成的数组中会显示间距,反之不显示。 |
numpy.logspace (函数用于创建一个于等比数列) |
np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None) | base 对数 log 的底数。 |
Numpy 数组操作
方法 | 用法 | 参数说明(相同参数不重复说明) |
---|---|---|
numpy.reshape (函数可以在不改变数据的条件下修改形状) |
numpy.reshape(arr, newshape, order=‘C’) | arr:要修改形状的数组 newshape:整数或者整数数组,新的形状应当兼容原有形状 order:‘C’ – 按行,‘F’ – 按列,‘A’ – 原顺序,‘k’ – 元素在内存中的出现顺序。 |
numpy.ndarray.flat (元素迭代器) |
a = np.arange(9).reshape(3,3) for element in a.flat: print (element) 输出:0\n1\n2\n3\n4\n5\n6\n7\n8(换行符\n) |
|
numpy.ndarray.flatten (返回一份数组拷贝,对拷贝所做的修改不会影响原始数组) |
ndarray.flatten(order=‘C’) | |
numpy.ravel (展平的数组元素) |
numpy.ravel(a, order=‘C’) | |
numpy.transpose numpy.ndarray.T (对换数组的维度) |
numpy.transpose(arr, axes) a = np.arange(12).reshape(3,4) a.T(行列互换) |
arr:要操作的数组 axes:整数列表,对应维度,通常所有维度都会对换 |
连接数组
方法 | 用法 | 参数说明(相同参数不重复说明) |
---|---|---|
numpy.concatenate (沿指定轴连接相同形状的两个或多个数组) |
numpy.concatenate((a1, a2, …), axis) | a1, a2, …:相同类型的数组 axis:沿着它连接数组的轴,默认为 0 |
numpy.stack (用于沿新轴连接数组序列) |
numpy.stack(arrays, axis) | arrays:相同形状的数组序列 axis:返回数组中的轴,输入数组沿着它来堆叠 |
numpy.hstack (通过水平堆叠来生成数组) |
numpy.hstack(arr1,arr2) | |
numpy.vstack (通过垂直堆叠来生成数组) |
numpy.hstack(arr1,arr2) |
数组元素的添加与删除
方法 | 用法 | 参数说明(相同参数不重复说明) |
---|---|---|
numpy.split (分割数组) |
numpy.split(ary, indices_or_sections, axis) | ary:被分割的数组 indices_or_sections:果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置(左开右闭) axis:沿着哪个维度进行切向,默认为0,横向切分。为1时,纵向切分 |
numpy.hsplit (用于水平分割数组,指定要返回的相同形状的数组数量来拆分原数组) |
numpy.hsplit(arr,) | – |
numpy.vsplit (用于垂直分割数组) |
– | – |
数组元素的添加与删除
方法 | 用法 | 参数说明(相同参数不重复说明) |
---|---|---|
numpy.resize (返回指定形状的新数组) |
numpy.resize(arr, shape) | arr:要修改大小的数组 shape:返回数组的新形状 |
numpy.append (数组的末尾添加值。 追加操作会分配整个数组,并把原来的数组复制到新数组中) |
numpy.append(arr, values, axis=None) | arr:输入数组 values:要向arr添加的值,需要和arr形状相同(除了要添加的轴) axis:默认为 None。当axis无定义时,是横向加成 当axis为0时,数组是加在下面(行数要相同) 当axis为1时,数组是加在右边(行数要相同) |
numpy.insert (在给定索引之前,沿给定轴在输入数组中插入值,如果未提供轴,则输入数组会被展开) |
numpy.insert(arr, obj, values, axis) | arr:输入数组 obj:在其之前插入值的索引 values:要插入的值 axis:沿着它插入的轴,如果未提供,则输入数组会被展开 |
numpy.delete (返回从输入数组中删除指定子数组的新数组。 与 insert() 函数的情况一样,如果未提供轴参数,则输入数组将展开) |
numpy.delete(arr, obj, axis) | arr:输入数组 obj:可以被切片,整数或者整数数组,表明要从输入数组删除的子数组 axis:沿着它删除给定子数组的轴,如果未提供,则输入数组会被展开 |
numpy.unique (去除数组中的重复元素) |
numpy.unique(arr, return_index, return_inverse, return_counts) | arr:输入数组,如果不是一维数组则会展开 return_index:如果为true,返回新列表元素在旧列表中的位置(下标),并以列表形式储 return_inverse:如果为true,返回旧列表元素在新列表中的位置(下标),并以列表形式储 return_counts:如果为true,返回去重数组中的元素在原数组中的出现次数 |