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

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

如何修改存儲為列表的 numpy 數組的行

如何修改存儲為列表的 numpy 數組的行

互換的青春 2024-01-04 15:20:23
我想修改存儲在列表中的 numpy 數組的行。我的 numpy 數組的長度不一樣。我有幾個巨大的 numpy 數組存儲為列表。這是我的數據(為了簡單起見,我只復制了一小部分數組):elements= [array([[971, 466, 697, 1, 15, 18, 28],                 [5445, 4, 301, 2, 12, 47, 5]]),           array([[5883, 316, 377, 2, 9, 87, 1]])]然后,我想用最后一列替換每行的第四列,然后刪除最后一列。我想要得到以下結果:[array([[971, 466, 697, 1, 28, 18],        [5445, 4, 301, 2, 5, 47]]), array([[5883, 316, 377, 2, 1, 87]])]我嘗試了以下代碼,但沒有成功:length=[len(i) for i in elements] # To find the length of each arrayh=sum(length) # to find the total number of rowsfor i in range (h):    elements[:,[4,-1]] = elements[:,[-1,4]]    elements=np.delete(elements,[-1],1)我面臨以下錯誤:TypeError: list indices must be integers or slices, not tuple我很感謝您提前提供幫助。
查看完整描述

3 回答

?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

您可以在沒有循環的情況下完成此操作,但它仍然比可接受的解決方案慢(大數據時為 1.75 倍):


counts = list(map(len, elements))

arr = np.concatenate(elements)

arr[:, 4] = arr[:, -1]

new_elements = np.split(arr[:,:-1], np.cumsum(counts)[:-1])

連接速度相當慢numpy。


查看完整回答
反對 回復 2024-01-04
?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

一個簡單低效的解決方案:


import numpy as np


elements= [np.array([[971, 466, 697, 1, 15, 18, 28],

                     [5445, 4, 301, 2, 12, 47, 5]]),

           np.array([[5883, 316, 377, 2, 9, 87, 1]])]


new_elements = list()

for arr in elements:

    arr[:, 4] = arr[:, -1]

    new_elements.append(arr[:, :-1])

新的列表輸出為:


new_elements

Out[11]: 

[array([[ 971,  466,  697,    1,   28,   18],

        [5445,    4,  301,    2,    5,   47]]),

 array([[5883,  316,  377,    2,    1,   87]])]


查看完整回答
反對 回復 2024-01-04
?
holdtom

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

試試這個


p=[]

for x in range(len(elements)):

    for y in range(len(elements[x])):

         p.append(list(elements[x][y][:4])+[elements[x][y][-1]]+[elements[x][y][-2]])

print(p)


[[971, 466, 697, 1, 28, 18],

[5445, 4, 301, 2, 5, 47],

[5883, 316, 377, 2, 1, 87]]


查看完整回答
反對 回復 2024-01-04
  • 3 回答
  • 0 關注
  • 196 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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