网络编程
位置:首页>> 网络编程>> Python编程>> 对numpy中数组元素的统一赋值实例

对numpy中数组元素的统一赋值实例

作者:grey_csdn  发布时间:2021-05-31 18:47:37 

标签: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.])

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

来源:https://blog.csdn.net/grey_csdn/article/details/69371695

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com