如何解决在python中比较两个数组字符串值,如果没有,则将值添加到数组中
我想比较2个数组(数据名称和种类的列0),如果值不在种类中,则添加该值。 data_size 是 data_names 的长度。
species = np.array([])
for i in range(data_size):
if not data_names[i,0] in species :
np.insert(species,str,data_names[i,0])
我尝试了很多方法,但是我总是出错,
在'type'和'int'的实例之间不支持'
您能帮我吗,我不知道该怎么办。 谢谢
解决方法
我会这样:
# create simple list
species = []
# iterate
for i in range(data_size):
# check name not in list
if data_names[i,0] not in species:
# add name to list
species.append(data_names[i,0])
# convert to numpy array
output = np.array(species)
,
insert
方法的第二个参数可以是int,slice或int序列。它表示要在其中插入元素的索引。您正在传递str
关键字,该关键字在python中是指字符串类型。因此,口译员对此有所抱怨。
而且,insert
方法返回一个带有添加的元素的新数组,但是在您的代码段中,您没有将此新元素分配给变量,因此结果将无效。
如果要在第一个位置添加元素,可以执行以下操作:
for i in range(data_size):
if not data_names[i,0] in species :
species=np.insert(species,data_names[i,0])
ref:https://numpy.org/doc/stable/reference/generated/numpy.insert.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。