我在循环中生成了一个一维numpy数组的列表,然后将此列表转换为2d numpy数组。如果我事先知道项数,我会预先分配一个2d numpy数组,但我不知道,因此我把所有东西都放在一个列表中。
以下是模拟:
>>> list_of_arrays = map(lambda x: x*ones(2), range(5))
>>> list_of_arrays
[array([ 0., 0.]), array([ 1., 1.]), array([ 2., 2.]), array([ 3., 3.]), array([ 4., 4.])]
>>> arr = array(list_of_arrays)
>>> arr
array([[ 0., 0.],
[ 1., 1.],
[ 2., 2.],
[ 3., 3.],
[ 4., 4.]])
我的问题如下:
在收集连续的数字数据时(在我的情况下是numpy数组),是否有比将它们放入列表中,然后将其转换为numpy.array(我创建一个新对象并复制数据)更好的方式(在性能上)?是否有一个可扩展的矩阵数据结构可以在一个经过充分测试的模块中使用?
我的二维矩阵的典型大小在100x10到5000x10之间
编辑: 在这个例子中,我使用了map,但在我的实际应用程序中,我有一个for循环。
python_lists_to_array
假设使用 Python 2,其中map
会生成一个列表。 - hpauljlist
部分?我已经提出了一个相关问题,https://dev59.com/na_la4cB1Zd3GeqPuYqs - bers