[英]numpy array division turns all elements to zeros
我試圖將矩陣每一行中的每個元素除以它的索引,我創建了一個匹配行並將其從 1 填充到 1000,但是當我執行以下操作時:
d = data[0]/np.arange(1,1001)
data[0] = data[0] / np.arange(1,1001)
打印d
給出了正確的計算:
[1. 0.5 0.33333333 0.25 0.2 0.33333333
0.28571429 0.25 0.22222222 0.2 0.18181818 0.16666667
0.23076923 0.21428571 0.2 0.25 0.29411765 0.33333333
0.31578947 0.35 0.38095238 0.40909091 0.39130435 0.375
0.4 0.42307692 0.40740741 0.42857143 0.4137931 0.43333333
]
打印data[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 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 0 0 0 0 0 0 0 0 ]
正如你所說的 data[0] 是一個 int 數組,所以除法的結果再次轉換為 int,因此你得到全 0。
雖然 d 不是整數數組,因此除法的結果被強制轉換為浮點數。
data = np.ones((2,1000)).astype(np.int8)
d = data[0]/np.arange(1,1001)
data[0] = data[0] / np.arange(1,1001)
此示例示例將導致相同的結果:
data[0] 將是一個零數組(除了索引 0 處的元素將是 1)
而 d 將是除法的浮點結果數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.