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

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

給定一個 (n,3) 數組,如何獲得 3 個 (n,1) 數組的列表

給定一個 (n,3) 數組,如何獲得 3 個 (n,1) 數組的列表

牧羊人nacy 2022-11-09 16:18:15
假設我有一個像這樣的數組:import numpy as npnp.array([[0, 0, 0],          [1, 1, 1]])這里有形狀 (2,3) 但它可以是 (n,3)。我想將它轉換為表示列的數組列表。期望的輸出[array([[0],[1]]), array([[0],[1]]), array([[0],[1]])]我嘗試了列表理解、重塑等,但我沒有設法到達那里。
查看完整描述

2 回答

?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

您可以像這樣使用 numpy hsplit() 函數:


>>> a=np.array([[0, 0, 0],

...        [1, 1, 1]])


>>> b,c,d = np.hsplit(a,3)

>>> b

array([[0],

       [1]])

>>> c

array([[0],

       [1]])

>>> d

array([[0],

       [1]])

使其成為三個數組的單個列表:


>>> myList = [*np.hsplit(a,3)]

>>> myList

[array([[0],

       [1]]), array([[0],

       [1]]), array([[0],

       [1]])]


查看完整回答
反對 回復 2022-11-09
?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

使用列表推導,您有 2 個選項:


import numpy as np


a = np.array([[0, 0, 0],

              [1, 1, 1]])

[c for c in a.T]

[array([0, 1]), array([0, 1]), array([0, 1])]


[a[:,i] for i in range(a.shape[1])]

[array([0, 1]), array([0, 1]), array([0, 1])]


#or as hpaulj suggested in the comment

[a[:,[i]] for i in range(a.shape[1])]

[array([[0],[1]]),

 array([[0],[1]]),

 array([[0],[1]])]


查看完整回答
反對 回復 2022-11-09
  • 2 回答
  • 0 關注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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