我正在嘗試解決熊貓中的一個問題。我已經為它寫了一個回圈,但它沒有給我想要的結果。
我有一些標量值 a = [1,2],我有一個向量 b = [1,2,3,4]。我想對 a 和 b 執行元素乘法 - 所以 a[0]* b, a[1]*b..
df = []
a = [1,2]
b = [1,2,3,4]
for i in a:
for j in b:
test = i * j
df.append(test)
現在在 df 我有df = (1,2,3,4,2,3,6,8)這在技術上是正確的,但我想處理一個標量串列來迭代,所以我的結果是
[1,2,3,4][2,4,6,8] - that can be saved in the dataframe df
uj5u.com熱心網友回復:
另一個答案是使用einsum:
np.einsum('i,j->ij',a,b)
uj5u.com熱心網友回復:
使用outer:
np.outer(a, b)
array([[1, 2, 3, 4],
[2, 4, 6, 8]])
uj5u.com熱心網友回復:
您可以將廣播用于轉換為陣列的多個串列:
out = np.array(a)[:, None] * np.array(b)
print (out)
[[1 2 3 4]
[2 4 6 8]]
uj5u.com熱心網友回復:
您回圈需要另一個附加。更好的是,使用嵌套串列理解
res = [[i*j for j in b] for i in a]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/488342.html
標籤:python-3.x 熊猫 麻木的
