似乎h [:] = h + 1且h = h + 1全部給h中的所有元素加1。numpy array,h [:] = h + 1 vs. h = h + 1
但是可能會在下面找到差異,你能解釋爲什麼嗎?看起來像在第二種情況下,h不僅變化爲函數內部變量,而且像覆蓋全局變量h一樣...這太混亂了...... 感謝您的任何輸入!
import numpy as np
def fun(h):
h=h+1
return h
h=np.zeros((2,2))+1
hI=h.copy()
for i in range(0,3):
hI = fun(h)
print h
print hI
[[ 1. 1.]
[ 1. 1.]]
[[ 2. 2.]
[ 2. 2.]]
而
import numpy as np
def fun(h):
h[:]=h+1
return h
h=np.zeros((2,2))+1
hI=h.copy()
for i in range(0,3):
hI = fun(h)
print h
print hI
[[ 4. 4.]
[ 4. 4.]]
[[ 4. 4.]
[ 4. 4.]]