我们需要一个有3列的numpy数组的最大值。
示例,我需要最后一列的每个数组的最大值。 在这种情况下,结果是:第一个数组为57.65048981,第二个数组为58.3501091,第三个数组为56.86465836。如何在数组中包含2个值包含的数组中的这3个值?
[array([[ 402. , 242. , 57.65048981],
[ 401. , 243. , 56.32482529]]),
array([[ 356. , 257. , 53.3116188 ],
[ 355. , 258. , 53.69690704],
[ 356. , 258. , 57.52435684],
[ 355. , 259. , 56.98838806],
[ 356. , 259. , 57.81959152],
[ 354. , 260. , 55.90369415],
[ 355. , 260. , 58.14822769],
[ 356. , 260. , 58.3501091 ],
[ 354. , 261. , 55.1479187 ],
[ 355. , 261. , 58.20180893],
[ 354. , 262. , 54.5345459 ]]),
array([[ 386. , 260. , 56.86465836],
[ 386. , 261. , 54.28659439],
[ 386. , 259. , 56.53445435]])]
结果应该是:
[[402, 242, 57.65048981],
[356 ,260, 58.3501091],
[386 ,260, 56.86465836]]
答案 0 :(得分:3)
我认为您的"结果"
中存在错误np.array([arr[np.argmax(arr[:, 2]), :] for arr in arrays])
返回
array([[ 402. , 242. , 57.65048981],
[ 356. , 260. , 58.3501091 ],
[ 386. , 260. , 56.86465836]])