我有兩個陣列要合并到一個新陣列,但我需要在特定位置插入索引
array1 = np.arange(95,320,4)
array2 = np.arange(0,360,2)
例如.. array1[0] = 95,但我希望這個值位于一個新陣列中,array2[47]該陣列介于 94 和array2[48]96 之間,以此類推,其余值在 array1 中。
這可能嗎?
uj5u.com熱心網友回復:
我認為您正在尋找numpy.insert
array1 = np.arange(95,320,4)
array2 = np.arange(0,360,2)
for i, value in enumerate(array1):
index = i 48 i*2
array2 = np.insert(array2, index, array1[i])
uj5u.com熱心網友回復:
目前尚不清楚您到底想要什么,但可能如下:
所以你有兩個陣列(arr1和arr2):
import numpy as np
arr1 = np.arange(95, 320, 4)
arr2 = np.arange(0, 360, 2)
并且您在這些陣列的元素與其在合并陣列中的索引之間有兩個索引串列 (idxs1和) 映射:idxs2
n1, n2 = len(arr1), len(arr2)
n = n1 n2
idxs = np.arange(n)
rng = np.random.default_rng()
rng.shuffle(idxs)
idxs1 = idxs[:n1]
idxs2 = idxs[n1:]
然后你可以很容易地構造合并的陣列,如下所示:
merged = np.empty(n)
merged[idxs1] = arr1
merged[idxs2] = arr2
讓我們檢查一下我假設您想要實作的屬性:
for i in range(n1):
assert merged[idxs1[i]] == arr1[i]
for i in range(n2):
assert merged[idxs2[i]] == arr2[i]
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/488958.html
上一篇:使用串列理解決議非常大的陣列很慢
