微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在numpy中明智地追加元素

如何解决在numpy中明智地追加元素

我想附加两个 NumPy 数组。这两个数组具有相同的形状,我想附加两个数组的每个元素并将其存储在另一个计算成本较低的 NumPy 数组中。 例如:

a =  np.arange (12).reshape(4,3)
b = np.arange (2,14).reshape(4,3)

我想创建以下 np.array:

c = [[ (0,2)  (1,3)  (2,4)]
 [ (3,5)  (4,6)  (5,7)]
 [ (6,8)  (7,9) (8,10)]
 [(9,11) (10,12) (11,13)]]

需要注意的是,使用for循环可以创建,但是高维的计算成本是巨大的。最好使用矢量化方式。 你能告诉我如何创建这个 np.array 吗?

解决方法

目前尚不清楚您期望的形状,但我相信您正在寻找numpy.dstack

>>> a
array([[ 0,1,2],[ 3,4,5],[ 6,7,8],[ 9,10,11]])
>>> b
array([[ 2,3,4],[ 5,6,7],[ 8,9,10],[11,12,13]])
>>> np.dstack([a,b])
array([[[ 0,[ 1,3],[ 2,4]],[[ 3,[ 4,6],7]],[[ 6,[ 7,9],10]],[[ 9,11],[10,12],13]]])
,

使用 dstackreshape,您可以压缩和改造它们。 np.dstack((a,b)).reshape(4,2)

这就给你了

[[[ 0  2]
  [ 1  3]
  [ 2  4]]

 [[ 3  5]
  [ 4  6]
  [ 5  7]]

 [[ 6  8]
  [ 7  9]
  [ 8 10]]

 [[ 9 11]
  [10 12]
  [11 13]]]

应该提供与元组相同的功能。我尝试了多种方法,但没有设法在 numpy 数组中保留实际的元组

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。