如何从NumPy数组制作标签?

2024-05-06 12:28:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚学了Python,我想问点事

例如,我有

import numpy as np

a = np.array([[11, 12, 13],
              [14, 16, 13],
              [17, 15, 11],
              [12, 14, 15]])

我要找到那个数组的标签

所以。。在第一行中,最大值为13,然后标签结果为3

在第二行中,最大值为16,则标签结果为2

期望的结果是这样的

[3 2 1 3] or [[3]
              [2]
              [1]
              [3]]

Tags: orimportnumpyasnp标签数组array
2条回答

你可以这样做

d=[]
for lst in a:
    d.append(lst.index(max(lst))+1)
print(d)

输出

[3, 2, 1, 3]

d=[]
for lst in a:
    d.append([lst.index(max(lst))+1])
print(d)

输出

[[3], [2], [1], [3]]

你可以试试这个:

>>> import numpy as np

>>> a = np.array([[11, 12, 13],
              [14, 16, 13],
              [17, 15, 11],
              [12, 14, 15]])

>>> np.argmax(a, axis=1) + 1

array([3, 2, 1, 3], dtype=int64)

^{}给出指定轴上最大值的索引。 所以

>>> np.argmax(a, axis=1)
array([2, 1, 0, 2], dtype=int64)

那么您所需要做的就是向它添加1

相关问题 更多 >