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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

新的多維數(shù)組將數(shù)組中的值分配給第二個數(shù)組的索引

新的多維數(shù)組將數(shù)組中的值分配給第二個數(shù)組的索引

哈士奇WWW 2022-06-14 10:02:52
雖然我不覺得這過于復雜,但我正在努力尋找類似的問題/答案。我有兩個數(shù)組。索引數(shù)組:[0, 1, 1, 0, 0, 1, 0]值數(shù)組: [1, 2, 3, 4, 5, 6, 7]我想使用第一個數(shù)組作為賦值索引和第二個數(shù)組作為值來創(chuàng)建一個新數(shù)組。這應該會產(chǎn)生一個新數(shù)組,每個索引有兩個值,但是,一個值為零,另一個是我的第二個數(shù)組中的值。使用我上面的示例數(shù)組,它應該導致:[[1, 0], [0, 2], [0, 3], [4, 0], [5, 0], [0, 6], [7, 0]]我可以使用以下方法輕松創(chuàng)建所需數(shù)組的空版本:np.zeros((total_len, values_per_index))嘗試以下操作時,我的直覺失敗了:target_array[indices_array] = value_array我相信我理解為什么我嘗試的方法會失敗,但如何真正實現(xiàn)這一點卻讓我望而卻步。有沒有一種簡單的方法可以做到這一點?到目前為止,Python 不是我最好的語言,一些 numpy 技巧有時在本質上似乎過于神奇。編輯:我知道一個 for 循環(huán)可以做到這一點,但我真的希望更好地理解 numpy 并在可能的情況下盡可能避免迭代,以實現(xiàn)代碼的簡潔性和可讀性。
查看完整描述

4 回答

?
炎炎設計

TA貢獻1808條經(jīng)驗 獲得超4個贊

你可以這樣做:


import numpy as np


indices = np.array([0, 1, 1, 0, 0, 1, 0])

values = np.array([1, 2, 3, 4, 5, 6, 7])


result = np.zeros((len(indices), 2))


result[np.arange(len(indices)), indices] = values


print(result)

輸出


[[1. 0.]

 [0. 2.]

 [0. 3.]

 [4. 0.]

 [5. 0.]

 [0. 6.]

 [7. 0.]]

請參閱numpy 中的索引。


查看完整回答
反對 回復 2022-06-14
?
叮當貓咪

TA貢獻1776條經(jīng)驗 獲得超12個贊

您可以使用如下乘法


indices_array = np.array([0, 1, 1, 0, 0, 1, 0])

value_array = np.array([1, 2, 3, 4, 5, 6, 7])



## you can simply do this

value_array = np.c_[value_array * (indices_array==0), value_array * (indices_array==1)]

display(value_array)


查看完整回答
反對 回復 2022-06-14
?
UYOU

TA貢獻1878條經(jīng)驗 獲得超4個贊

您可以簡單地使用column_stack和乘以 numpy 廣播


i_arr = np.array([0, 1, 1, 0, 0, 1, 0])

v_arr = np.array([1, 2, 3, 4, 5, 6, 7])


np.column_stack((1-i_arr, i_arr)) * v_arr[:,None]


Out[61]:

array([[1, 0],

       [0, 2],

       [0, 3],

       [4, 0],

       [5, 0],

       [0, 6],

       [7, 0]])


查看完整回答
反對 回復 2022-06-14
?
慕桂英546537

TA貢獻1848條經(jīng)驗 獲得超10個贊

這對你有用嗎?


import numpy as np                                                                                                                                                                     


a = np.array([0, 1, 1, 0, 0, 1, 0])                                                                                                                                                    

b = np.array([1, 2, 3, 4, 5, 6, 7])                                                                                                                                                    


print(np.array([a*b,(1-a)*b]))

[[0 2 3 0 0 6 0]


[1 0 0 4 5 0 7]]


查看完整回答
反對 回復 2022-06-14
  • 4 回答
  • 0 關注
  • 88 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號