2024-05-19 14:43:11 发布
网友
我想比较一下70x1矩阵和1000x3矩阵。我要做的是比较第二个矩阵的第一列和第一个矩阵,找到所有的公共值,然后将结果存储到一个新的第三个矩阵中,这个矩阵将包含所有3列。在
我使用np.intersect1d来查找两个矩阵之间的公共值,但仅此而已。在
np.intersect1d
我找不到将第二个矩阵的另外两列导入新矩阵的方法。在
矩阵1
[1.0 4.7 4.8 4.9 5.0 5.1]
矩阵2
矩阵3
[4.7, 2.4, -3.0]
取每个矩阵的第一列值,转换为set,intersect并转换回list(或np.array):
np.array
matrix3 = list(set(y for x in matrix1[:,:1] for y in x) & set(y for x in matrix2[:,:1] for y in x))
我看不出有必要拍裸照:
m1 = [1.0, 4.7, 4.8, 4.9, 5.0, 5.1] m2 = [[3.0, 1.8, -3.0], [3.1, 2.2, -3.0], [4.7, 2.4, -3.0], [3.3, 2.8, -3.0], [3.40, 3.0, -3.0]] output = [] for value in m2: if value[0] in m1: output.append(value) print(output)
给出:
您可以使用np.in1d:
np.in1d
a = numpy.array([1.0,4.7,4.8,4.9,5.0,5.1]) b = numpy.array([ [3.0, 1.8, -3.0], [3.1, 2.2, -3.0], [4.7, 2.4, -3.0], [3.3, 2.8, -3.0], [3.40, 3.0, -3.0] ]) c = b[numpy.in1d(b[:, 0], a), :] # array([[ 4.7, 2.4, -3. ]])
取每个矩阵的第一列值,转换为set,intersect并转换回list(或
np.array
):我看不出有必要拍裸照:
给出:
^{pr2}$您可以使用
np.in1d
:相关问题 更多 >
编程相关推荐