我声明了一个空的 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
来得到这个,但是当子数组没有达成一致时,我不能这样做(他们不会)。
答案 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)