第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

迭代更改numpy數(shù)組的值

迭代更改numpy數(shù)組的值

ibeautiful 2021-08-05 10:29:37
我在使用 numpy 數(shù)組時(shí)遇到問題:a1 是一個(gè) numpy 數(shù)組(一個(gè) 3 維向量),而 update 是一個(gè)包含三個(gè)值的列表。我希望 a1 的第一個(gè)維度是第一個(gè)值,第二個(gè)維度是第二個(gè)值,第三個(gè)維度是第三個(gè)。a1 = [0, 0, 0] update = [0.6402942957283034, 0.6017736334918196, 0.6096552413265736]所以基本上,我想要:a1 = [0.6402942957283034, 0.6017736334918196, 0.6096552413265736]現(xiàn)在,如果我嘗試迭代:for i in range(0,3):     a1[i] = update[i]a1 數(shù)組中的值沒有改變,我仍然得到:a1 = [0, 0, 0]為什么會(huì)發(fā)生這種情況,我該如何規(guī)避這個(gè)問題?
查看完整描述

1 回答

?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊

我假設(shè)你的代碼看起來像這樣


a1 = np.array([0, 0, 0])

update = [0.6402942957283034, 0.6017736334918196, 0.6096552413265736]

for i in range(0,3):

    a1[i] = update[i]

print(a1)

這確實(shí)打印 array([0 0 0])


您看到這種行為的原因是因?yàn)榕c python 列表不同,numpy 數(shù)組必須包含相同類型的值。創(chuàng)建數(shù)組時(shí)a1,您沒有明確指定類型,因此創(chuàng)建了一個(gè)int64數(shù)組。嘗試做


print(a1.dtype)

update是一個(gè)float64所有數(shù)字都小于 1的數(shù)組。當(dāng)您將 float < 1 轉(zhuǎn)換為 int 時(shí),它變?yōu)?0。


您的問題的解決方案是明確指定 array 的類型a1。


a1 = np.array([0, 0, 0], dtype='float64')

另一方面,為什么要逐個(gè)復(fù)制元素?你本可以做的


a1 = np.asarray(update)


查看完整回答
反對 回復(fù) 2021-08-05
  • 1 回答
  • 0 關(guān)注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)