我有一個充滿零的陣列,創建為 A = np.zeros(m,m) 和 m = 6。我想用特定數字填充這個陣列,每個數字等于它的行號和列號的總和;例如 A(x,y) = x y。我如何使用 for 回圈和 while 回圈來做到這一點?
uj5u.com熱心網友回復:
避免回圈的方法在大型 ndarray 上具有相當顯著的性能改進:
A = np.zeros((6,6))
m = A.shape[0]
n = A.shape[1]
x = np.transpose(np.array([*range(1,m 1)]*n).reshape(n,m))
y = np.array([*range(1,n 1)]*m).reshape(m,n)
A = x y
print(A)
[[ 2 3 4 5 6 7]
[ 3 4 5 6 7 8]
[ 4 5 6 7 8 9]
[ 5 6 7 8 9 10]
[ 6 7 8 9 10 11]
[ 7 8 9 10 11 12]]
uj5u.com熱心網友回復:
A = np.zeros((6,6))
for i in range(0,A.shape[0]):
for j in range(0, A.shape[1]):
A[i][j] = i j 2
如果您希望行和列從 1 開始,您可以直接使用此代碼,但如果您希望它們從 0 開始,您當然可以洗掉第 4 行中的“ 2”。
說明: 我首先在回圈中遍歷行,然后在回圈 2 中遍歷列,然后我使用 A[i][j] 訪問單元格值。并將其分配給 i j 2(或僅 i j)。這樣原始陣列將填充您的新值。
uj5u.com熱心網友回復:
你試過這個嗎?
for y in range(len(A)):
for x in range(len(A[Y]):
A[y][x] = x y
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/491056.html
上一篇:冒泡排序未正確排序
下一篇:從excel中過濾資料