我有一个pandas系列features
,它有以下值(features.values
)
array([array([0, 0, 0, ..., 0, 0, 0]), array([0, 0, 0, ..., 0, 0, 0]),
array([0, 0, 0, ..., 0, 0, 0]), ...,
array([0, 0, 0, ..., 0, 0, 0]), array([0, 0, 0, ..., 0, 0, 0]),
array([0, 0, 0, ..., 0, 0, 0])], dtype=object)
现在我真的想把它认作矩阵
>>> features.values.shape
(10000,)
而不是我所期望的(10000, 3000)
。
我如何才能将其识别为二维数组,而不是以数组作为值的一维数组。另外,为什么它不自动检测它作为一个二维阵列?
在回答您的评论问题时,让我们比较两种创建数组的方法
首先从数组列表中创建一个数组(所有长度相同):
结果是一个二维数字数组。
如果我们创建一个对象数据类型数组,并用数组填充它:
注意这个展示和你的一样。这是一个一维阵列。像列表一样,它包含指向内存中其他地方数组的指针。注意,它需要额外的构造步骤。
np.array
的默认行为是创建多维数组。要想克服这一点需要付出额外的努力。同样地,要撤销它需要额外的努力-创建二维数字数组。
简单地对它调用
np.array
不会改变结构。stack
确实将其更改为2d。stack
将其视为数组列表,并将其连接到新的轴上。相关问题 更多 >
编程相关推荐