簡體   English   中英

如何在 Python 中自動生成矩陣?

[英]How can I produce matrixes automatically in Python?

我有

x = np.linspace(0, 1, 6)
y = np.linspace(0, 1, 9)

如何從 (x,y) 獲得一個 7x10 的矩陣,但每一行都通過加 1 變成前一行? 例如,第一行是

0,1,2,3,4,5,6

第二行

1,2,3,4,5,6,7

等等

在 numpy廣播

x = np.arange(7)
y = np.arange(10)

x[np.newaxis, :] + y[:, np.newaxis]

Output:

array([[ 0,  1,  2,  3,  4,  5,  6],
       [ 1,  2,  3,  4,  5,  6,  7],
       [ 2,  3,  4,  5,  6,  7,  8],
       [ 3,  4,  5,  6,  7,  8,  9],
       [ 4,  5,  6,  7,  8,  9, 10],
       [ 5,  6,  7,  8,  9, 10, 11],
       [ 6,  7,  8,  9, 10, 11, 12],
       [ 7,  8,  9, 10, 11, 12, 13],
       [ 8,  9, 10, 11, 12, 13, 14],
       [ 9, 10, 11, 12, 13, 14, 15]])

或與np.reshape相同的事情:

x.reshape(1, -1) + y.reshape(-1, 1)

這里可能更具可讀性,但計算效率要低得多:

m = np.empty((10, 7))
for i in range(10):
    for j in range(7):
        m[i, j] = i + j

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM