我想在 numpy. 。假设我有两个阵列, ab:

>>> a
array([[ 1, 10],
       [ 2, 20],
       [ 5, 30]])
>>> b
array([[ 1, 11],
       [ 3, 31],
       [ 4, 41]])

我想将其拼接到以下数组中, c:

>>> c
array([[  1.,  10.],
       [  2.,  20.],
       [  3.,  nan],
       [  4.,  nan],
       [  5.,  30.]])

也就是说,我将值从第一列的第一列中拼写起来 b 进入 a 不用困扰第二列。

我当然可以很容易地实现这一目标,但是让Numpy为我做这件事会更好。那可能吗?

有帮助吗?

解决方案

Mishaf的答案仅缺少最后一步 - 使最后一列的条目独一无二。完整的代码来获取您的 c (除了dtype,它从 intfloat 在您的帖子中)是

b[:,1]=numpy.nan
c = numpy.r_[a, b]
c.sort(0)
c = c[numpy.unique(c[:,0], True)[1]]

其他提示

您可以将两者堆叠在一起,然后排序。但是,这并不能照顾您有两次索引的事实。不确定这是一个很好的改进...

 b[:,1]=np.nan
 c = np.vstack((a,b))
 c.sort(0)

我认为没有什么 numpy 要做到这一点。您是否完全需要该结果(按顺序,第二列带有未定义值)?也许有一些接近的东西仍然对最终目标有用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top