如何强制NumPy将列表附加为对象?

时间:2016-07-29 16:20:23

标签: python arrays numpy

我声明了一个空的 list 数组:

r = np.array([])

我有一个操作,在每个循环上向r添加一个值数组。假设第一个循环添加[1,2,3],下一个循环添加[4,5,6,7]。如何强制将r的参数添加为对象而不是按元素添加到数组append

意思是,我想在完成后想要这个:

r = np.array([[1, 2, 3], [4, 5, 6, 7]])

我认为需要dtype = object。或者至少那是我想要的。

如果我使用

r = np.append(r, [1,2,3])
r = np.append(r, [4,5,6,7])

我得到了

r = np.array([1., 2., 3., 4., 5., 6., 7.])

唯一的问题是,我需要稍后以特定的方式使用它。我需要能够单独访问子列表并对它们进行操作,但我后来也需要能够访问整个阵列。通常我会做一个np.ravel来得到这个,但是当子数组没有达成一致时,我不能这样做(他们不会)。

1 个答案:

答案 0 :(得分:2)

创建数组时可以使用列表推导:

>>> np.array([row for row in [1, 2, 3], [4, 5, 6, 6]])
array([[1, 2, 3], [4, 5, 6, 6]], dtype=object)