亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用列表理解創建二維 numpy 數組

使用列表理解創建二維 numpy 數組

HUH函數 2023-09-19 15:01:29
我需要僅使用列表理解創建一個二維 numpy 數組,但它必須遵循以下格式:[[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7]]]到目前為止,我所能弄清楚的是:two_d_array = np.array([[x+1 for x in range(3)] for y in range(5)])給予:array([[1, 2, 3],       [1, 2, 3],       [1, 2, 3],       [1, 2, 3],       [1, 2, 3]])只是不太確定如何更改增量。任何幫助將不勝感激,謝謝!編輯:示例中不小心遺漏了 [3,4,5]?,F在包括在內。
查看完整描述

3 回答

?
www說

TA貢獻1775條經驗 獲得超8個贊

這是一個可以完成這項工作的快速單行文字:

np.array([np.arange(i, i+3) for i in range(1, 6)])

其中3是列數或每個數組中的元素數,6是要執行的迭代次數 - 或者在本例中是要創建的數組數;這就是輸出中有 5 個數組的原因。

輸出:

array([[1, 2, 3],
       [2, 3, 4],
       [3, 4, 5],
       [4, 5, 6],
       [5, 6, 7]])


查看完整回答
反對 回復 2023-09-19
?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

更改代碼,類似這樣的事情可以工作:


two_d_array = np.array([[(y*3)+x+1 for x in range(3)] for y in range(5)])

>>> [[1,2,3],[4,5,6],...]

two_d_array = np.array([[y+x+1 for x in range(3)] for y in range(5)])

>>> [[1,2,3],[2,3,4],...]


查看完整回答
反對 回復 2023-09-19
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

你已經得到了一些很好的理解答案,所以這里有一些 numpy 解決方案。


簡單加法:


np.arange(1, 6)[:, None] + np.arange(3)

瘋狂的跨步技巧:


base = np.arange(1, 8)

np.lib.stride_tricks.as_strided(base, shape=(5, 3), strides=base.strides * 2).copy()

重塑累積和:


base = np.ones(15)

base[3::3] = -1

np.cumsum(base).reshape(5, 3)


查看完整回答
反對 回復 2023-09-19
  • 3 回答
  • 0 關注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號