[英]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.