在 numpy 数组中创建 numpy 数组

沙鲁克·阿扎尔

我想在一个 numpy 数组中创建一个 numpy 数组。如果我用普通的python做它就像

a = [[1,2], [3,4]]

a[0][1] = [1,1,1]

print a

结果是 [[1, [1, 1, 1]], [3, 4]]

如何使用 numpy 数组实现相同的目标?我的代码是:

a = np.array([(1, 2, 3),(4, 5, 6)])
b = np.array([1,1,1])

a[0][1] = b
保利

a创建时是 dtype int。每个元素只能是另一个整数:

In [758]: a = np.array([(1, 2, 3),(4, 5, 6)])
     ...: b = np.array([1,1,1])
     ...: 
In [759]: a
Out[759]: 
array([[1, 2, 3],
       [4, 5, 6]])
In [760]: b
Out[760]: array([1, 1, 1])
In [761]: a[0,1]=b
...
ValueError: setting an array element with a sequence.

您可以创建另一种 dtype 数组,它包含指向对象的指针,就像 list 一样:

In [762]: aO = a.astype(object)
In [763]: aO
Out[763]: 
array([[1, 2, 3],
       [4, 5, 6]], dtype=object)

现在可以用指向b数组的指针替换这些元素指针之一

In [765]: aO[0,1]=b
In [766]: aO
Out[766]: 
array([[1, array([1, 1, 1]), 3],
       [4, 5, 6]], dtype=object)

但正如评论中所问的那样 - 你为什么想要/需要这样做?你打算用这样的数组做什么?可以numpy对这样的数组进行一些数学运算,但如最近的一些 SO 问题所示,它是命中注定的。它也更慢。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章