我有三個陣列
a=np.random.randint(10,size=50)
b=np.random.randint(10,size=50)
c=np.arrange(0,0,50)
其中 c 是一個只有零的串列
并且我嘗試使用回圈在每個對應元素中用 a 和 b 的最大值填充 c,例如如果 a 有 [2,3,7..] 并且 b 有 [3,6,8..] 串列c 會有 [8,7,6,3,3,2..]
我曾嘗試使用 while 回圈,但它只是產生了錯誤
while 0<=n<=50
c[n]=max[a,b]
我是代碼新手,任何幫助都會很棒
uj5u.com熱心網友回復:
嘗試使用
for i in range(500):
i = 1
put_your_stuff_here()
uj5u.com熱心網友回復:
第一個更正是創建c陣列的方式。
c=np.arrange(0,0,50)創建一個空陣列(大小為0)。
如果您想創建一個包含50 個零的串列,您可以使用例如
c = np.zeros(50, dtype=int).
然后讓我們看看你的代碼:
正如我想的那樣,撰寫max[a,b]您嘗試對a和b陣列的相應元素呼叫max函式。
第一個錯誤是,周圍的引數,你應該使用圓形 (而不是方)括號。
第二個錯誤是你的回圈應該有一個索引(當前元素的編號),所以你應該寫而不是while回圈:
for i in range(50):
然后在這個回圈中使用i:
for i in range(50):
c[i] = max(a[i], b[i])
但更簡潔的代碼將沒有任何回圈。只需致電:
c = np.maximum(a, b)
沒有初始創建一個空的c陣列。
請注意,在這里您參考了整個陣列,而Numpy足夠聰明,可以將其“轉換”為相關回圈,并在兩個陣列的每個元素上運行。
結果也是一個Numpy陣列,保存在c變數下。
還要注意,這np.max(...)是一個錯誤的選擇,因為此函式從單個陣列計算最大值。有關詳細資訊,請參閱此函式的檔案。
uj5u.com熱心網友回復:
所以你應該做的是
for i in rangI GTG PISS SORRY CAPS
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/342460.html
