矩陣就像
[0, 1, 2]
[1, 2, 3]
[2, 3, 4]
為了澄清起見,不僅要創建一個這樣的矩陣,還要創建許多其他類似的矩陣。
[0, 1, 2, 3]
[1, 2, 3, 4]
[2, 3, 4, 5]
uj5u.com熱心網友回復:
你可以使用一個sliding_window_view
from numpy.lib.stride_tricks import sliding_window_view as swv
cols = 4
rows = 3
out = swv(np.arange(cols rows-1), cols).copy()
注意。因為這是一個視圖,所以您需要.copy()將其設為可變陣列,如果只讀物件就足夠了(例如,用于顯示或索引),則沒有必要。
輸出:
array([[0, 1, 2, 3],
[1, 2, 3, 4],
[2, 3, 4, 5]])
輸出cols = 3 ; rows = 5:
array([[0, 1, 2],
[1, 2, 3],
[2, 3, 4],
[3, 4, 5],
[4, 5, 6]])
替代方案:廣播:
cols = 4
rows = 3
out = np.arange(rows)[:,None] np.arange(cols)
輸出:
array([[0, 1, 2, 3],
[1, 2, 3, 4],
[2, 3, 4, 5]])
uj5u.com熱心網友回復:
L = 3
np.array([
np.array(range(L)) j
for j in range(L)
])
或一些優化:
L = 3
a = np.array(range(L))
np.array([
a j
for j in range(L)
])
uj5u.com熱心網友回復:
例如,您可以使用廣播輕松創建這樣的矩陣
>>> np.arange(3)[:, None] np.arange(4)
array([[0, 1, 2, 3],
[1, 2, 3, 4],
[2, 3, 4, 5]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/519626.html
標籤:Python麻木的
