我正在嘗試將浮點數分配給二維 numpy 陣列。二維陣列最初由整陣列成。在我分配之后,我打算更改的行完全歸零。
有誰知道為什么會這樣?
>>> s=numpy.array([[1,0,0],[1,0,0]])
>>> s[1]=numpy.array([.3,.3,.3])
>>> s
array([[1, 0, 0],
[0, 0, 0]])
uj5u.com熱心網友回復:
您需要顯式轉換為浮點數:
s = numpy.array([[1,0,0],[1,0,0]])
s = s.astype(numpy.float32, copy=False)
s[1] = numpy.array([.3,.3,.3])
更新s:
array([[1. , 0. , 0. ],
[0.3, 0.3, 0.3]], dtype=float32)
uj5u.com熱心網友回復:
這是由于numpy中的dtype,這里了解一些執行,
In [1]: s = numpy.array([[1,0,0],[1,0,0]])
In [2]: a = numpy.array([.3,.3,.3])
In [3]: s.dtype
Out[3]: dtype('int64')
In [4]: a.dtype
Out[4]: dtype('float64')
In [5]: a.astype(int)
Out[5]: array([0, 0, 0])
因此,在執行此操作時,s[1] = numpy.array([.3,.3,.3])它會轉換為它存盤為的float64原因int64[0, 0, 0]
uj5u.com熱心網友回復:
如果您打算在將來保留浮點數,您可以通過在創建物件時提供至少一個顯式浮點數來讓 Python 知道這一點s:
s=numpy.array([[1,0,0],[1,0,0.0]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/511859.html
標籤:Python数组麻木的
