我的目標是要做到這一點:如何將numpy數組的dtype更改爲'object'?
weights[1][0][0] = some_object(1)
但它拋出這個錯誤:
TypeError: float() argument must be a string or a number, not 'some_object'
正因爲如此我wawnt到D型更改爲「對象」 在我的代碼有重量。他們是這樣的:
>>> print(weights)
[ array([[-2.66665269, 0. ],
[-0.36358187, 0. ],
[ 1.55058871, 0. ],
[ 3.91364328, 0. ]])
array([[ 0.],
[ 0.]])]
我想改變weights[1][0][0]
的對象。我指的0:
[ array([[-2.66665269, 0. ],
[-0.36358187, 0. ],
[ 1.55058871, 0. ],
[ 3.91364328, 0. ]])
array([[ 0.], #this zero right here
[ 0.]])]
我要轉換的是0到some_object(1)。所以我把dtype改成'object',但它仍然是浮動的!
>>> weights=np.array(weights,dtype='object')
>>> weights.dtype
object
>>> weights[1].dtype
float64
>>> weights[1][0].dtype
float64
>>> weights[1][0][0].dtype
float64
所以現在我嘗試:
>>> weights[1].dtype='object'
TypeError: Cannot change data-type for object array.
這
>>> weights[1][0].dtype='object'
TypeError: Cannot change data-type for object array.
所以現在我不能做到這一點:
weights[1][0][0] = some_object(1)
TypeError: float() argument must be a string or a number, not 'object'
因爲D型不正確。如何更改dtype?
編輯:我找到了答案。
weights[1] = weights[1].tolist()
weights[1][0][0] = some_object(1)
....
weights=np.array(weights)
輝煌。這工作。 –