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() :将两个或多个数组合并成一个新的数组