簡體   English   中英

在 Python 中解壓作為 np.array 元素的列表

[英]Unpack lists that are elements of a np.array in Python

有誰知道我如何“解壓縮”作為 np.array 元素/單元格的列表? 這就是輸出現在的樣子:

[[0 301227 0.863 0.456 -3.551 0.532 135.96200000000002 4
  list([0.49, 0.33, 0.33, 0.28, 0.26, 0.47, 0.28, 0.29, 0.41, 0.42, 0.85, 0.48])
  list([53.09, 119.1, 36.67, -1.91, 11.38, -20.86, -0.56, 4.01, -3.51, 0.9, -8.72, 1.04])
  66.66666666666667 1.0]]

我想解壓縮這些列表,以便每個值只是數組中的另一個項目/列。 如果有幫助,我也可以將列表放入 np.arrays 中。 應該很容易解決,我只是還沒有找到它。

干杯

如果我正確理解您的問題,您可以使用 numpy.concatenate() :

list = np.concatenate(input_list).ravel()

如果您希望輸出為列表形式,您可以附加.tolist()

我想我現在更了解你的問題了。 我創建了一些東西來嘗試匹配您所面臨的情況,它返回一個列表,其中每個列表中的每個項目都變成了您想要的另一個項目:

import numpy as np

input_list = [0, 2, 4, 1, 5,np.array([1, 2, 3]), 6, 1, 6, 1, 2, np.array([1, 2, 3])] 

def flatten(l):
    for item in l:
        try:
            yield from flatten(item)
        except TypeError:
            yield item

output_list = list(flatten(input_list)))

輸出為: [0, 2, 4, 1, 5, 1, 2, 3, 6, 1, 6, 1, 2, 1, 2, 3]

也用 np 數組和列表對其進行了測試,應該沒有問題。 此外,我沒有將輸出列表創建為 np.array,但是如果您願意,您可以輕松地更改它

暫無
暫無

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

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