【python】numpy库ndarray多维数组的创建方法:np.array(listtuple)、arange, ones, zeros等详解

xiaoxiao2021-02-28  13

ndarray数组的创建方法有

从Python中的列表、元组等类型创建ndarray数组使用NumPy中**函数创建**ndarray数组,如:arange, ones, zeros等从字节流(raw bytes)中创建ndarray数组从文件中读取特定格式,创建ndarray数组

1、从Python中的列表、元组等类型创建ndarray数组 当np.array()不指定dtype时,NumPy将根据数据情况关联一个dtype类型

x = np.array(list/tuple) x = np.array(list/tuple, dtype=np.float32) #指定数据的类型type In [1]: import numpy as np #从列表类型创建 In [2]: np.array([0,1,2,3]) Out[2]: array([0, 1, 2, 3]) In [3]: x = np.array([0,1,2,3]) In [4]: x Out[4]: array([0, 1, 2, 3]) #从元组类型创建 In [5]: y = np.array((1,2,3)) In [6]: y Out[6]: array([1, 2, 3]) #从列表和元组混合类型创建 In [8]: z = np.array(([1,2,3],(2,4,6))) In [9]: z Out[9]: array([[1, 2, 3], [2, 4, 6]])

2、使用NumPy中函数创建ndarray数组,如:arange, ones, zeros等

np.arange(n) :类似range()函数,返回ndarray类型,元素从0到n‐1 In [10]: np.arange(5) Out[10]: array([0, 1, 2, 3, 4]) np.ones(shape) : 根据shape生成一个全1数组,shape是元组类型 In [12]: np.ones([2,2]) Out[12]: array([[ 1., 1.], [ 1., 1.]]) np.zeros(shape) :根据shape生成一个全0数组,shape是元组类型 In [11]: np.zeros([2,3]) #生成一个2*3维的全是0的数组 Out[11]: array([[ 0., 0., 0.], [ 0., 0., 0.]]) np.full(shape,val) :根据shape生成一个数组,每个元素值都是val In [13]: np.full([2,3],5) Out[13]: array([[5, 5, 5], [5, 5, 5]]) np.eye(n) : 创建一个正方的n*n单位矩阵,对角线为1,其余为0 In [15]: np.eye(5) Out[15]: array([[ 1., 0., 0., 0., 0.], [ 0., 1., 0., 0., 0.], [ 0., 0., 1., 0., 0.], [ 0., 0., 0., 1., 0.], [ 0., 0., 0., 0., 1.]]) np.ones_like(a) :根据数组a的形状生成一个全1数组np.zeros_like(a) : 根据数组a的形状生成一个全0数组np.full_like(a,val) : 根据数组a的形状生成一个数组,每个元素值都是val In [18]: a = np.ones([2,2]) In [19]: np.ones_like(a) Out[19]: array([[ 1., 1.], [ 1., 1.]]) In [20]: np.zeros_like(a) Out[20]: array([[ 0., 0.], [ 0., 0.]]) In [21]: np.full_like(a,3) Out[21]: array([[ 3., 3.], [ 3., 3.]])

3、使用NumPy中其他函数创建ndarray数组

np.linspace() :根据起止数据等间距地填充数据,形成数组,即相同间隔采样

详见之前博客:【python】numpy库linspace相同间隔采样 详解

np.concatenate() :将两个或多个数组合并成一个新的数组

详见之前博客:【python】numpy库数组拼接np.concatenate官方文档详解与实例

转载请注明原文地址: https://www.6miu.com/read-1600026.html

最新回复(0)