numpy中数组元素的统一赋值

       Numpy中的数组整体处理赋值操作一直让我有点迷糊,很多时候理解的不深入。今天单独列写相关的知识点,进行总结一下。

       先看两个代码片小例子:

例子1:

In [2]: arr =np.empty((8,4))

 

In [3]: arr

Out[3]:

array([[ 0.,  0., 0.,  0.],

       [ 0., 0.,  0.,  0.],

       [ 0., 0.,  0.,  0.],

       [ 0., 0.,  0.,  0.],

       [ 0., 0.,  0.,  0.],

       [ 0., 0.,  0.,  0.],

       [ 0., 0.,  0.,  0.],

       [ 0., 0.,  0.,  0.]])

 

In [4]: arr[1] = 1

 

In [5]: arr

Out[5]:

array([[ 0.,  0., 0.,  0.],

       [ 1., 1.,  1.,  1.],

       [ 0., 0.,  0.,  0.],

       [ 0., 0.,  0.,  0.],

       [ 0., 0.,  0.,  0.],

       [ 0., 0.,  0.,  0.],

       [ 0., 0.,  0.,  0.],

       [ 0., 0.,  0.,  0.]])

例子2:

In [6]: arr1 =np.empty(2)

In [8]: arr1

Out[8]:array([  7.74860419e-304,   7.74860419e-304])

 

In [9]: arr1 = 0

 

In [10]: arr1

Out[10]: 0

 

       这两段看上去似乎出现了行为不一致,其实利用一般面向对象的标签理解模型还是能够理解的。例子1中,加上了索引之后的标签其实指代的就是具体的存储区,而例子2中,直接使用了一个标签而已。那么这样如何实现对一个一维数组的全体赋值呢?其实只需要进行全部元素的索引即可,具体方法实现如下:

In [11]: arr1 =np.empty(2)

 

In [12]: arr1

Out[12]: array([0.,  0.])

 

In [13]: arr1[:]

Out[13]: array([0.,  0.])

 

In [14]: arr1[:] =0

 

In [15]: arr1

Out[15]: array([0.,  0.])

       看起来似乎蛮简单,但是不做一下稍微深入一点的分析,理解起来确实是还有一点点难度。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值