簡體   English   中英

在NumPy中使用頻率數組檢索數組元素

[英]Retrieving array elements with an array of frequencies in NumPy

我有一個數字數組, a 我有第二個數組b ,它指定我要檢索a中相應元素a 如何做到這一點? 在這種情況下,輸出的順序並不重要。

import numpy as np

a = np.arange(5)
b = np.array([1,0,3,2,0])

# desired output = [0,2,2,2,3,3]
# i.e. [a[0], a[2], a[2], a[2], a[3], a[3] ]

那就是np.arange(5).repeat([1,0,3,2,0])所做的。

這樣做的一種真正低效的方法是:

import numpy as np

a = np.arange(5)
b = np.array([1,0,3,2,0])

res = []
i = 0
for val in b:
    for aa in range(val):
        res.append(a[i])
    i += 1
print res

這是一種實現方法:

res = []
for i in xrange(len(b)):
    for j in xrange(b[i]):
        out.append(a[i])

res = np.array(res)  # optional

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM