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

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官方文档详解与实例

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值