[:]在numpy中的作用

时间:2016-12-24 08:46:28

标签: python numpy

[:]在此计划中的作用是什么:

import numpy as np
l=np.array([[0,0,0,0],
            [4,5,6,7],
            [7,8,9,8]])
out[:]=np.nanstd(l, axis=0)
print(out)

如果我像这样编写代码的第三行(即没有[:]):

out=np.nanstd(l, axis=0)

我会得到相同的结果。那么,[:]的作用是什么?它在什么情况下有所作为呢?

1 个答案:

答案 0 :(得分:1)

sindex会话维护包含历史记录的Jupyter/ipython字典。但是Out会出错。

在新的会话中,这会产生错误:

Out[:]

但如果我首先创建In [731]: out[:]=np.array([1,2,3]) .... NameError: name 'out' is not defined ,则out语法有效

out[:]

第一个创建In [732]: out=np.array([1,2,3]) In [733]: out Out[733]: array([1, 2, 3]) In [734]: out[:]=np.array([4,5,6]) In [735]: out Out[735]: array([4, 5, 6]) 变量,在本例中为数组。第二个用新的值替换out中的值。替换中的值的数量必须与原始的形状相匹配。

如果out最初(或重新定义为)列表,则out分配也有效,将所有值替换为新值(不必匹配)。

[:]

列表In [736]: out=[1,2,3] In [737]: out[:]=[4,5] In [738]: out Out[738]: [4, 5] out=...非常相似,我们必须在注意到差异之前和之后查看out[:]=...

但基本点是id(out)为变量分配一个新对象。 out = ...为现有对象分配新值。第二种情况中的确切操作取决于该对象的类。