簡體   English   中英

numpy 數組除法將所有元素都歸零

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM