print(s0[3][0][0]) 給我1
但是print(s0[3][0])給我的是[1]
。我怎樣才能使 print(s0[3][0]) 給我 1 呢?
S0是一個100行的numpy矩陣
S0 =
[[[1.]] 。
[-0.91903376]
[0.18724527 ]]
[[1.] ]
[0.87834638] 。
[-0.88794145]]
[[ 1. ]
[-0.75320818]
[0.59000726 ]]
小樣本 ^
uj5u.com熱心網友回復:
如上所述,陣列S0是一個3維陣列。為了從這個3維陣列中得到一個值,你需要有三個索引。為了使用兩個索引(S0[i][j])獲得值,你必須將其轉換為一個2維陣列。
eg-
S1 =[[1.0, -0.91903376, 0.18724527]。
[1.0, 0.87834638, -0.88794145] 。
[1.0, -0.75320818, 0.59000726] ]
S1[0][0]現在將給出1.0
uj5u.com熱心網友回復:
花些時間閱讀numpy基礎知識。 這里的關鍵是shape。 你有一個三維陣列:
在[122]: arr = np. arange(9).reshape(3,3, 1)
在[123]: arr
輸出[123]。
array([[0],
[1]。
[2]]。
[[3]。
[4]。
[5]]。
[[6]。
[7]。
[8]])
在[124]: arr.shape
Out[124]: (3, 3, 1)
你可以用
索引這樣一個陣列在[125]: arr[:, :,0]
輸出[125]。
array([[0, 1, 2],
[3, 4, 5] 。
[6, 7, 8]])
在[126]。_.形狀
輸出[126]。(3, 3)
arr[0][0][0]可以作業,但是arr[0,0,0]更清楚。
你也可以用reshape從這里得到一個2d陣列(注意,我用reshape從1d的arange陣列創建原始陣列。
在[127]: arr.reshape(3,3)
Out[127]。
array([[0, 1, 2],
[3, 4, 5] 。
[6, 7, 8]])
帶有所有[]和逗號的顯示(和輸入)對于查看陣列是很好的,但是你越早熟悉shape(和reshape)你的numpy編碼就越容易。
uj5u.com熱心網友回復:
正如@Selcuk提到的,獲得1作為輸出的一種方法是將陣列轉換為二維陣列。如果你有使用三維陣列的限制,另一個選擇是print(s0[3][0][0])。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/316558.html
標籤:
下一篇:自動拒絕更新某些檔案的PR
