ここで説明したものと同様の質問があり ます numpy 配列の連結辞書 (可能であれば手動ループを回避します)
辞書キーを手動でループする必要を避けながら、任意のサイズの numpy 配列を含む 2 つの Python 辞書の値を連結する方法を探しています。例えば:
import numpy as np
# Create first dictionary
n1 = 3
s = np.random.randint(1,101,n1)
n2 = 2
r = np.random.rand(n2)
d = {"r":r,"s":s}
print "d = ",d
# Create second dictionary
n3 = 1
s = np.random.randint(1,101,n3)
n4 = 3
r = np.random.rand(n4)
d2 = {"r":r,"s":s}
print "d2 = ",d2
# Some operation to combine the two dictionaries...
d = SomeOperation(d,d2)
# Updated dictionary
print "d3 = ",d
出力を与える
>> d = {'s': array([75, 25, 88]), 'r': array([ 0.1021227 , 0.99454874])}
>> d2 = {'s': array([78]), 'r': array([ 0.27610587, 0.57037473, 0.59876391])}
>> d3 = {'s': array([75, 25, 88, 78]), 'r': array([ 0.1021227 , 0.99454874, 0.27610587, 0.57037473, 0.59876391])}
つまり、キーが既に存在する場合、そのキーの下に格納されている numpy 配列が追加されます。
パッケージ pandas を使用した前の説明で提案されたソリューションは、同じ長さ (n1=n2 および n3=n4) の配列を必要とするため機能しません。
for
遅い手動ループの使用を最小限に抑えながら、これを行う最善の方法を知っている人はいますか? (結合したい辞書には何百ものキーがある可能性があるため、ループを避けたいと思います)。
ありがとう(非常に明確な質問を作成してくれた「Aim」にも)!