我有一个巨大的2d numpy列表数组(dtypeobject
),我想把它转换成一个dtypefloat
的2d numpy数组,将列表表示的维度叠加到第0个轴(行)上。每行中的列表总是具有完全相同的长度,并且至少有一个元素
下面是对这种情况的最起码的再现:
import numpy as np
current_array = np.array(
[[[0.0], [1.0]],
[[2.0, 3.0], [4.0, 5.0]]]
)
desired_array = np.array(
[[0.0, 1.0],
[2.0, 4.0],
[3.0, 5.0]]
)
我四处寻找解决方案,stack
和dstack
函数只有在第一级是元组时才起作用reshape
将要求第三级成为数组的一部分。我想知道,有没有相对有效的方法
目前,我只是计算维度,创建空数组并逐个填充值,这看起来并不是一个好的解决方案
这里是问题的作者
我发现了一种比逐个填充数组更优雅(更快)的方法,即:
但是它仍然做了相当多的手术。它将表转置为能够用
np.concatenate
堆叠相邻的“维度”(其中一个是列表),然后将结果转换为np.array
,并将其转置回去重做两行:
将它们结合起来:
在一行中:
相关问题 更多 >
编程相关推荐