我目前有两个数组,其中一个具有多个重复值,另一个具有唯一值。
例如数组1:a = [1、2、2、3、3]
例如数组2:b = [10、11、12、13、14、15]
我正在用python开发一个代码,该代码查看第一个数组并区分所有相同的元素并记住索引。创建一个新数组,该数组在这些索引处包含数组b的元素。
例如:由于数组'a'在位置1,2 ... 3,4 ... 5,6处具有三个唯一值,因此将创建三个新数组,使其在位置1,2处包含数组b的元素... 3,4 ... 5,6。因此,结果将是三个新数组:
b1 = [10,11]
b2 = [12,13]
b3 = [14,15]
我设法开发了一个代码,但是,它仅适用于数组“ a”中存在三个唯一值的情况。在数组“ a”中或多或少有唯一值的情况下,必须对代码进行物理修改。
import itertools
import numpy as np
import matplotlib.tri as tri
import sys
a = [1, 1, 2, 2, 3, 3]
b = [10, 10, 20, 20, 30, 30]
b_1 = []
b_2 = []
b_3 = []
unique = []
for vals in a:
if vals not in unique:
unique.append(vals)
if len(unique) != 3:
sys.exit("More than 3 'a' values - check dimension")
for j in range(0,len(a)):
if a[j] == unique[0]:
b_1.append(c[j])
elif a[j] == unique[1]:
b_2.append(c[j])
elif a[j] == unique[2]:
b_3.append(c[j])
else:
sys.exit("More than 3 'a' values - check dimension")
print (b_1)
print (b_2)
print (b_3)
我想知道是否可能有一种更优雅的方式来执行此任务,以使代码能够处理n个唯一值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句