每日10行代码168:认识np.array对象——np.array数组创建

176 篇文章 4 订阅
11 篇文章 0 订阅

np.array可以从python列表创建数组:
创建整型数组:

In [6]: np.array([1,4,2,5,3])
Out[6]: array([1, 4, 2, 5, 3])

跟python列表 不同的时,Nunpy要求数组必须包含同一类型的数据。如果类型不匹配,Numpy将会隐式的转换。

In [7]: np.array([3.14,4,2,3])
Out[7]: array([3.14, 4.  , 2.  , 3.  ])

上面的整型被转换成了浮点型。
如果希望明确设置数组的数据类型,可以用dtype 关键字:

In [8]: np.array([1,2,3,4], dtype='float32')
Out[8]: array([1., 2., 3., 4.], dtype=float32)

也可以创建多维数组:

In [9]: np.array([range(i,i+3) for i in [2,4,6]])
Out[9]:
array([[2, 3, 4],
       [4, 5, 6],
       [6, 7, 8]])

注意,这里的range(i,i+3) 并不等同于一个列表,而是一个 range对象,但是他是可迭代的,所以array数组在生成数据时,自动迭代获取了相关数据。

也可以用 Numpy 的内置方法从头创建数组是一种更高效的方法。
创建一个长度为10的数组,数组的值都是0:

In [13]: np.zeros(10, dtype=int)
Out[13]: array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

创建一个3*5的浮点型数组,数组的值都是1

In [14]: np.ones((3,5), dtype=float)
Out[14]:
array([[1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.]])

创建一个3*5的浮点型数组,数组的数值都是3.14

In [15]: np.full((3,5),3.14)
Out[15]:
array([[3.14, 3.14, 3.14, 3.14, 3.14],
       [3.14, 3.14, 3.14, 3.14, 3.14],
       [3.14, 3.14, 3.14, 3.14, 3.14]])

创建一个线性序列数组,从0开始,20结束,步长是2:

In [16]: np.arange(0,20,2)
Out[16]: array([ 0,  2,  4,  6,  8, 10, 12, 14, 16, 18])

创建一个5个元素的数组,这5个数均匀地分配到0~1

In [17]: np.linspace(0, 1, 5)
Out[17]: array([0.  , 0.25, 0.5 , 0.75, 1.  ])

创建一 个3*3的,在0~1 均匀分布的随机数组成的数组

In [18]: np.random.random((3,3))
Out[18]:
array([[0.49794033, 0.21021487, 0.58525192],
       [0.35517336, 0.62095702, 0.08306016],
       [0.77282231, 0.89984311, 0.16947136]])

创建一个3*3, 均值 为0,标准差为1的正态分布的随机数数组

In [19]: np.random.normal(0,1,(3,3))
Out[19]:
array([[-1.22430636, -0.61128796,  0.00432618],
       [-0.21534065, -0.26496596,  0.98739882],
       [-1.90585908,  1.49111415, -0.03400582]])

创建一个3*3的,[0,10) 区间的随机整型数组

In [20]: np.random.randint(0, 10, (3,3))
Out[20]:
array([[5, 3, 8],
       [7, 4, 6],
       [5, 7, 1]])

创建一个3*3的单位矩阵

In [21]: np.eye(3)
Out[21]:
array([[1., 0., 0.],
       [0., 1., 0.],
       [0., 0., 1.]])
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值