比较几个 numpy 数组并获得相等的值
Comparing few numpy arrays and getting the equal values
我正在研究泰坦尼克号数据集,在我 运行 一些算法之后,我有 y_predictions 的 numpy 数组。
我想比较它们并仅提取每个位置每个数组中相等的值。
例如:
index
a
b
c
d
0
1
1
1
1
1
1
0
1
1
2
0
0
1
0
3
0
1
0
1
4
0
0
0
0
a、b、c 和 d 是 y_predictions 个算法。
输出应该是:
[1, 0, 0, 0, 1]
因为在索引 0 和 4 处所有值都相等,所以我分配 1,否则分配 0。
基本上,我想做的是查看那些算法识别为 'Survived' 的索引(乘客),用 1.
表示
有我的代码:
a= [1,1,0,0,0]
b= [1,0,0,1,0]
c= [1,1,1,0,0]
d= [1,1,0,1,0]
L= [a,b,c,d]
holder = L[0]
for i in range(len(L)):
equality = np.where(holder == L[i+1], holder, 'None')
holder = equ
但是我遇到了一些错误。
我将不胜感激任何建议
你的 L 数组形状错误你应该对你的 L 进行转置以获得描述中的 table 我建议你将它转换为一个 numpy 数组:
result = []
a= [1,1,0,0,0]
b= [1,0,0,1,0]
c= [1,1,1,0,0]
d= [1,1,0,1,0]
L=np.array([a,b,c,d]).T
holder = L[0]
for i in range(len(L)):
result.append(int(np.all(L[i,:] == L[i,0])))
print(result)
正如另一个答案中所指出的,您需要转置您的列表,并且最好将它们变成一个 numpy 数组。
你可以这样实现你想要的
a= [1,1,0,0,0]
b= [1,0,0,1,0]
c= [1,1,1,0,0]
d= [1,1,0,1,0]
L= np.array([a,b,c,d]).T
same_results = [len(set(col)) == 1 for col in L]
print(same_results)
# [True, False, False, False, True]
我正在研究泰坦尼克号数据集,在我 运行 一些算法之后,我有 y_predictions 的 numpy 数组。 我想比较它们并仅提取每个位置每个数组中相等的值。 例如:
index | a | b | c | d |
---|---|---|---|---|
0 | 1 | 1 | 1 | 1 |
1 | 1 | 0 | 1 | 1 |
2 | 0 | 0 | 1 | 0 |
3 | 0 | 1 | 0 | 1 |
4 | 0 | 0 | 0 | 0 |
a、b、c 和 d 是 y_predictions 个算法。 输出应该是: [1, 0, 0, 0, 1] 因为在索引 0 和 4 处所有值都相等,所以我分配 1,否则分配 0。 基本上,我想做的是查看那些算法识别为 'Survived' 的索引(乘客),用 1.
表示有我的代码:
a= [1,1,0,0,0]
b= [1,0,0,1,0]
c= [1,1,1,0,0]
d= [1,1,0,1,0]
L= [a,b,c,d]
holder = L[0]
for i in range(len(L)):
equality = np.where(holder == L[i+1], holder, 'None')
holder = equ
但是我遇到了一些错误。 我将不胜感激任何建议
你的 L 数组形状错误你应该对你的 L 进行转置以获得描述中的 table 我建议你将它转换为一个 numpy 数组:
result = []
a= [1,1,0,0,0]
b= [1,0,0,1,0]
c= [1,1,1,0,0]
d= [1,1,0,1,0]
L=np.array([a,b,c,d]).T
holder = L[0]
for i in range(len(L)):
result.append(int(np.all(L[i,:] == L[i,0])))
print(result)
正如另一个答案中所指出的,您需要转置您的列表,并且最好将它们变成一个 numpy 数组。
你可以这样实现你想要的
a= [1,1,0,0,0]
b= [1,0,0,1,0]
c= [1,1,1,0,0]
d= [1,1,0,1,0]
L= np.array([a,b,c,d]).T
same_results = [len(set(col)) == 1 for col in L]
print(same_results)
# [True, False, False, False, True]