編程就是踩坑的過程。今天又踩了一個坑,做個積累吧。
在給數組賦初始值的時候,經常會用到0數組,而Python中,我們使用zero()函數來實現。在默認的情況下,zeros創建的數組元素類型是浮點型的,如果要使用其他類型,可以設置dtype參數進行聲明。下面通過一個例子來說明:
1默認參數的例子:
import numpy as np r = 10 c = 10 D0 = np.zeros((11,11)) #D0 = np.zeros((11,11),dtype=int) D0[0, 1:] = 32767 D0[1:, 0] = 32767 for i in range(r): for j in range(c): D0[i + 1, j + 1] = 1 print D0 ~
運行結果:
[[ 0.00000000e+00 3.27670000e+04 3.27670000e+04 3.27670000e+04 3.27670000e+04 3.27670000e+04 3.27670000e+04 3.27670000e+04 3.27670000e+04 3.27670000e+04 3.27670000e+04] [ 3.27670000e+04 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00] [ 3.27670000e+04 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00] [ 3.27670000e+04 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00] [ 3.27670000e+04 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00] [ 3.27670000e+04 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00] [ 3.27670000e+04 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00] [ 3.27670000e+04 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00] [ 3.27670000e+04 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00] [ 3.27670000e+04 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00] [ 3.27670000e+04 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00]]
2 參數為整形的例子:
1 import numpy as np 2 3 r = 10 4 c = 10 5 6 #D0 = np.zeros((11,11)) 7 D0 = np.zeros((11,11),dtype=int) 8 9 D0[0, 1:] = 32767 10 D0[1:, 0] = 32767 11 12 for i in range(r): 13 for j in range(c): 14 D0[i + 1, j + 1] = 1 15 print D0
運行結果:
[[ 0 32767 32767 32767 32767 32767 32767 32767 32767 32767 32767] [32767 1 1 1 1 1 1 1 1 1 1] [32767 1 1 1 1 1 1 1 1 1 1] [32767 1 1 1 1 1 1 1 1 1 1] [32767 1 1 1 1 1 1 1 1 1 1] [32767 1 1 1 1 1 1 1 1 1 1] [32767 1 1 1 1 1 1 1 1 1 1] [32767 1 1 1 1 1 1 1 1 1 1] [32767 1 1 1 1 1 1 1 1 1 1] [32767 1 1 1 1 1 1 1 1 1 1] [32767 1 1 1 1 1 1 1 1 1 1]]
可以看出,該zeros默認的是float類型,要使用別的類型需要加符號的,我就是在這個上面躺槍了。