import numpy as np
data = np.array([[2,0,1,2,0],[0,1,2,0,1],[2,0,1,2,2]])
我要求以下三个作为单独的变量
class0 = np.where(data==0)
class1 = np.where(data==1)
class2 = np.where(data==2)
我知道如何用三行来写它们。 但是,使用以下示例的Pythonic方法是什么:
classes = ['class0', 'class1', 'class2']
values =[0,1,2]
for x, y in zip(classes, values):
x = np.where(data == y)
print x
在这里我如何将x的结果命名为class0,class1,class2 ???
答案 0 :(得分:1)
字典:
classes = ['class0', 'class1', 'class2']
values =[0,1,2]
output = {} #create a dictionary instance
for x, y in zip(classes, values):
output[x] = np.where(data == y) #use the class name as the dictionary key
答案 1 :(得分:1)
如果你真的想要三个变量而不是字典,你可以这样做:
class0, class1, class2 = [np.where(data == i) for i in range(0, 3)]
这不符合您在问题中提供的示例。