【问题标题】:Unpacking a List of Numpy Arrays解压 Numpy 数组列表
【发布时间】:2020-04-04 04:40:56
【问题描述】:

我正在尝试打开大型数据集的 pickle 文件,但遇到了结果数据类型的问题。结果给出了一个里面有一个数组的列表,我需要解压列表才能得到里面的数组。我认为可以归结为以下示例。说我有

x = [array([1,1,1], [1,1,1])]

(类型(x)=列表)

我想解压这个列表,让它只是里面的数组。即,我想要

y = array([1,1,1], [1,1,1])

(type(y) = numpy.ndarray)

我对 Python 编程比较陌生,并且可以使用手来轻松地做到这一点。如果我需要澄清我的问题,请告诉我。

我不确定这是否重要,但我使用的是 Python 3.7.6。


编辑

看起来我在为 x 放入数组时犯了一个错误。澄清一下,这是我解压泡菜文件时得到的。

x = pandas.read_pickle(data_source)
print(x)
> [array([1,1,1],[1,1,1])]

【问题讨论】:

    标签: python arrays list numpy


    【解决方案1】:

    对于数组,我假设你有一个 numpy 数组,你不能有类似的东西:

    np.array([1,1,1], [1,1,1])
    

    抛出一个TypeError: data type not understood

    你必须像这样从外面包裹一个方括号:

    np.array([[1,1,1], [1,1,1]])
    

    要回答您的问题,您可以:

    y = x[0]
    

    这使得y 成为<class 'numpy.ndarray'>

    【讨论】:

    • 哎呀,我知道括号。这是一个疏忽,很抱歉造成混乱。
    【解决方案2】:

    所以对于这种情况:

    x = [array([1,1,1], [1,1,1])]
    np.concatenate(x).ravel()
    

    这应该给你这个:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-31
      • 2016-01-07
      • 2021-11-28
      • 1970-01-01
      • 2014-08-26
      • 1970-01-01
      • 2014-09-03
      相关资源
      最近更新 更多