考虑以下数组:
x = np.array([[1, 1],[1, 1], [1, 2], [1, 2], [1, 2],
[2, 3], [2, 3], [2, 3], [2, 4], [2, 4]])
x
Out[12]:
array([[1, 1],
[1, 1],
[1, 2],
[1, 2],
[1, 2],
[2, 3],
[2, 3],
[2, 3],
[2, 4],
[2, 4],
[2, 5],
[2, 5],
[2, 5]])
如何获取每个第1列值的唯一第2列值?
例如:如果可以使用函数V完成,则V(x)= [2,3]。
我已经使用for循环实现了这一点。但是,这似乎比必需的更为复杂,并且花费了太多的时间(应用于我的实际数据集时,该数据集比此示例大得多)。
我对性能感兴趣,并且愿意牺牲代码的清晰度来提高速度(尽管它们通常是直接相关的!)。
答案 0 :(得分:3)
两次使用numpy.unique
:
public static int search(){
int none = 55;
Scanner user = new Scanner(System.in);
System.out.println("Enter a bedroom number ");
int bedroom = user.nextInt();
System.out.println("Enter a bathroom number ");
int bathroom = user.nextInt();
System.out.println("Enter your rental budget");
int rentalAmount = user.nextInt();
for( int x = 0; x < object.length;++x){
if(object[x].getNumBathrooms() == bathroom && object[x].getNumBedrooms() == bedroom
&& (object[x].getRentalAmount() <= rentalAmount)){
return x;
}else{
return none;
}
}
}