我想将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]
答案 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. ]])