【问题标题】:Convert a list of numpy vectors to 2D numpy array将 numpy 向量列表转换为 2D numpy 数组
【发布时间】:2018-03-21 10:27:58
【问题描述】:

我有一个 numpy 数组列表。我的列表包含 5000 个 numpy 数组,每个数组的大小为 (1x1000)。我想构造一个大小为 5000x1000 的 numpy 数组。我正在尝试做类似的事情:

db_array = np.asarray(db_list) # my db_list has 5000 samples of 1x1000 size

结果是一个大小为 (5000, 1, 1000) 的矩阵。如何构造一个大小为 (5000, 1000) 的矩阵?

【问题讨论】:

  • 你可以使用.reshape(5000,1000)
  • 只需重塑数组
  • 我试过重塑,结果是一样的。 db_array = db_array.reshape(5000, 1000)。当我尝试 db_array.shape 时,我得到了 (5000, 1, 1000)
  • vstack 是另一种选择。

标签: python arrays numpy


【解决方案1】:

MCVE 在这里会有所帮助,但如果我理解正确,请使用 numpy.array 构造函数。

>>> import numpy as np
>>> arraylist = [np.array([1,2,3]), np.array([1,2,3])]
>>> arraylist
[array([1, 2, 3]), array([1, 2, 3])]
>>> np.array(arraylist)
array([[1, 2, 3],
       [1, 2, 3]])

【讨论】:

  • 事实上,为了工作,我使用 np.array() 转换列表,但随后我还需要重塑。使用 np.asarray() 它不起作用。
  • @konstantin 那么您的列表确实与我的演示中的格式不同,您没有告诉我们。
【解决方案2】:

所以,只需将列表初始化为一个简单的 numpy 数组

import numpy as np

list = [np.array([1,2,3]), np.array([1,2,3])]
new_array = np.array(list)
print (new_array)
print (new_array.shape)

【讨论】:

    猜你喜欢
    • 2019-06-11
    • 2011-05-19
    • 2013-06-30
    • 2021-12-29
    • 2016-03-25
    • 2012-04-01
    • 2012-06-08
    相关资源
    最近更新 更多