我打算根據一個索引陣列來替換特定索引的值。原始的2d-array是這樣的:
A= [[0. 0. 0. 0. 0. 0. 0. ]
[0. 1.98019867 1.96039735 1. 90331502 1.81546888 1.70634771 0./span> ]
[0. 2. 1.98019867 1。 92311635 1.83527021 1.72614904 0. ]
[0. 1.98019867 1.96039735 1. 90331502 1.81546888 1.70634771 0./span> ]
[0. 1.92311635 1.90331502 1. 84623269 1.75838656 1.64926538 0.__span> ]
[0. 1.83527021 1.81546888 1. 75838656 1.67054042 1.56141925 0./span> ]
[0. 0. 0. 0. 0. 0. 0. ] ]。
而這是索引陣列(在每一行中,每一對都表示一個索引)
index=[[1 2]
[2 4]
[3 4]
[3 5 ]
[4 2]
[5 2]
[5 5]]
并且我想用:
替換陣列A中這些索引的值。zero=0
我希望最后的結果是這樣的:
我希望最后的結果是這樣的:
modified_A= [[0. 0. 0. 0. 0. 0. 0. ]
[0. 1.98019867 1.96039735 1. 90331502 1.81546888 1.70634771 0./span> ]
[0. 2. 1.98019867 1。 92311635 0. 1.72614904 0. ]
[0. 1.98019867 1.96039735 1. 90331502 0. 0. 0. ]
[0. 1.92311635 0. 1. 84623269 1.75838656 1.64926538 0./span> ]
[0. 1.83527021 0. 1. 75838656 1.67054042 0. 0. ]
[0. 0. 0. 0. 0. 0. 0. ] ]。
uj5u.com熱心網友回復:
你可以使用非常簡潔的符號,如arr[ind]如果你有ind作為一個元組
包含沿連續軸的連續 "想要的 "元素的索引。
為了從你的index串列中生成這樣一個元組,你可以運行:
ind = tuple(np.array(index) .T)
結果是:
(array([1, 2, 3, 3, 4, 5, 5]), array([2, 4, 4, 5, 2, 2, 5] )
然后,把0放在想要的位置,運行:
arr[ind] = 0。
對于一些隨機的源陣列(所有邊緣都是0),像你的源資料 樣本,我得到了:
array([0. , 0. , 0. , 0. , 0. , 0. ],
[0. , 1.5488, 0. , 1. 6028, 1.5449, 1.4237, 0. ],
[0. , 1.6459, 1.4376, 1. 8918, 0. , 1.3834, 0. ],
[0. , 1.7917, 1.5289, 1. 568 , 0. , 0. , 0. ] 。
[0. , 1.0871, 0. , 1. 8326, 1.7782, 1.87 , 0. ],
[0. , 1.9786, 0. , 1. 4615, 1.7805, 0. , 0. ],
[0. , 0. , 0. , 0. , 0. , 0. , 0. ])
每個非零元素的值并不重要。 只需要注意你的 "想要的 "元素已經被設定為0.
。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/332260.html
標籤:
上一篇:在R中使用資料集位置進行過濾
