dataframe.loc[cond]
in pandas
):
import numpy as np
a1 = np.array([1,2,3])
a2 = np.array(['a','b','c'])
a3 = np.array(['luca','paolo','francesco'])
a4 = np.array([True, False,False], dtype='bool')
combination = np.array([a1,a2,a3,a4])
print(combination)
# slice for a4 == True
combination[combination[3] == 'True']
但结果不是我想要的。
实际上来自combination
:
[['1' '2' '3']
['a' 'b' 'c']
['luca' 'paolo' 'francesco']
['True' 'False' 'False']]
它以combination[combination[3] == 'True']
生成:
array([['1', '2', '3']],
dtype='<U11')
实际上我想要:
[['1']
['a' ]
['luca']
['True' ]]
关于我做错的任何想法?
P.S。:不,我不能在熊猫中做到这一点,因为当将pandas转换为pandas.Dataframe
答案 0 :(得分:2)
我相信你只是错过了其他维度的指数:
combination[combination[3] == 'True']
应该是
combination[:, combination[3] == 'True']
请注意冒号。
这会产生一个新的ndarray,它在所有第一维上都被索引,而在第二维中只有0。