我嘗試將 np.nan 值插入到第 n 個位置的陣列中。期望的輸出:
陣列(['1','nan','nan','2',測驗','3'])
我試過這段代碼:
position = [1,2]
array= np.array([1,2,'test', 3])
array= np.insert(array, position, np.nan)
但它在索引 1 和 3 處插入值:
陣列(['1','nan','2','nan','test','3'])
我怎樣才能解決這個問題?
uj5u.com熱心網友回復:
位置應為 [1, 1]。位置 2 介于 2 和 'test' 之間,而 1 介于 1 和 2 之間。插入它們的索引是索引在初始陣列中的位置,而不是它們最終的位置。
uj5u.com熱心網友回復:
兩者都將完全插入np.nan。因此,如果您使用,[1,2]則索引 1 將介于1和之間2,而索引 2 將介于2和之間'test'。[1,1]如果要插入連續值,則該位置必須是。
import numpy as np
position = [1,1]
array = np.array([1,2,'test', 3])
array = np.insert(array, position, np.nan)
print(array)
輸出:
['1' 'nan' 'nan' '2' 'test' '3']
uj5u.com熱心網友回復:
numpy.insert() 函式在給定索引之前插入值。
即 對于給定的陣列:
[1, 2,'test',3]
0 1 2 3 -> index
在 position=[1,2] 處插入將在原始陣列中的索引 1(值 =2)和索引 2(值 ='test')之前插入值,即
[1, ___, 2, ___, 'test',3]
為了讓兩個 nan 在索引 1 之前插入,寫為
import numpy as np
position = [1,1]
array= np.array([1,2,'test', 3])
array= np.insert(array, position, np.nan)
print(array)
你會得到想要的結果:
['1' 'nan' 'nan' '2' 'test' '3']
注意:此位置陣列不是您要插入的新值的索引,它是您要在其之前插入新值的索引
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/463187.html
