比较Python中的矩阵并存储结果

时间:2017-07-05 10:19:17

标签: python numpy matrix

我想将70x1矩阵与1000x3矩阵进行比较。我想要做的是将第二个矩阵的第一列与第一个矩阵进行比较,找到所有常用值,然后将结果存储在一个新的第三个矩阵中,该矩阵将包含所有3个列。

我使用np.intersect1d来查找两个矩阵之间的公共值,但这是关于它的。

我无法找到将第二个矩阵的其他两列导入新列的方法。

矩阵1

[1.0

4.7

4.8

4.9

5.0

5.1]

矩阵2

[[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]]

Matrix3

[4.7, 2.4, -3.0]

3 个答案:

答案 0 :(得分:1)

获取每个矩阵的第一列值,转换为设置,相交并转换回列表(或$(document).ready(function(){ $( ".filter_merklink" ).click(function(e) { var link = $(this).attr('href'); e.preventDefault(); $( "#warmtepomplijst" ).load( link + " #warmtepomplijst", function(e) { console.log( "Nieuwe producten zijn opgehaald. Link= " + link ); }); $( "#sidebar" ).load( link + " #sidebar", function(e) { console.log( "Sidebar opgehaald!" ); }); }); $('#merken a').click(function(e){ $("#merken a").removeClass('active'); $(this).addClass('active'); }); $('#soorten a').click(function(e){ $("#soorten a").removeClass('active'); $(this).addClass('active'); }); }); ):

np.array

答案 1 :(得分:1)

我不认为需要numpy:

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)

给出:

[[4.7, 2.4, -3.0]]

答案 2 :(得分:1)

您可以使用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. ]])