如何检查一个数字是否已经在2d numpy数组的第一列中

2024-10-03 17:19:59 发布

您现在位置:Python中文网/ 问答频道 /正文

如果数组A2的第一个数字不在数组A1的第一列中,我尝试用数组A2对数组A1进行vstack:

A1 = np.array([])
numbers = [1,2,3,3,4,4,5,6,7,8,9]
for number in numbers:
   if number not in A1[:,0]:
      A2 = [number,10]
      A1 = np.vstack((A1,A2))

当然,在beginging中,A1不是2D数组,所以A1[:,0]将生成一个IndexError: too many indices for array。在

此时,我创建了一个虚拟的空2D数组,然后我抑制了虚拟值:

^{pr2}$

但是,好吧。。。我们都同意这样做很恶心。。。在

我如何解决这个问题?在


Tags: ina2numberforifa1npnot
1条回答
网友
1楼 · 发布于 2024-10-03 17:19:59

numpy数组当作列表来操作通常不是一个好主意。在

相反,请使用numpy可用的矢量化功能。下面是一个例子。在

import numpy as np

numbers = [1,2,3,3,4,4,5,6,7,8,9]

unique = np.unique(numbers)
constant = np.ones(len(unique)) * 10

A1 = np.vstack((unique, constant)).T

如果顺序很重要,请改为:

^{pr2}$

相关问题 更多 >