我声明了一个空的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 来得到这个,但是当子数组没有一致的长度时我不能这样做(他们不会)。
最佳答案
创建数组时可以使用列表理解:
>>> np.array([row for row in [1, 2, 3], [4, 5, 6, 6]])
array([[1, 2, 3], [4, 5, 6, 6]], dtype=object)
关于python - 如何强制 NumPy 将列表附加为对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38663380/