Zac*_*ach 0 python arrays numpy
我需要访问这个numpy数组,有时只有最后一列为0的行,有时候最后一列的值为1的行.
y = [0 0 0 0
1 2 1 1
2 -6 0 1
3 4 1 0]
Run Code Online (Sandbox Code Playgroud)
我必须反复这样做,但更愿意回避创建重复的数组或每次都必须重新计算.有什么方法我可以识别相关指数并只是打电话给他们吗?所以我可以这样做:
>>print y[LAST_COLUMN_IS_0]
[0 0 0 0
3 4 1 0]
>>print y[LAST_COLUMN_IS_1]
[1 2 1 1
2 -6 0 1]
Run Code Online (Sandbox Code Playgroud)
PS数组中的列数永远不会改变,它总是有4列.
您可以使用numpy的的布尔索引,以确定要选择这行,和numpy的的幻想索引/切片选择整行.
print y[y[:,-1] == 0, :]
print y[y[:,-1] == 1, :]
Run Code Online (Sandbox Code Playgroud)
您可以保存y[:,-1] == 0和... == 1往常一样,因为他们只是numpy的阵列.
(y[:,-1]选择整个最后一列,并在==元素方面进行相等性检查,从而产生一个布尔数组.)