猿问

按列筛选多维数字数组

我有一个多维numpy数组,我只想在数组的每一列中都有特定的值。如果 vlaue 与我正在过滤的内容不匹配,我想删除整行。代码片段:


array = ([4, 78.01, 65.00, 98.00],

         [5, 23.08, 87.68, 65.3],

         [6, 45.98, 56.54, 98.76],

         [7, 98.23, 26.65, 46.56])

例如,第1列我想要0-90之间的数字,而第4列我想要介于70-100之间的值。所以我的理想输出是:


 array = ([4, 78.01, 65.00, 98.00],

         [6, 45.98, 56.54, 98.76])

有什么办法可以做到这一点吗?


墨色风雨
浏览 85回答 1
1回答

大话西游666

您需要将所有条件与执行布尔索引链接在一起:bitwise operatorsarray[(array[:,0]&nbsp;>&nbsp;0)&nbsp;&&nbsp;(array[:,0]&nbsp;<&nbsp;100)&nbsp;&&nbsp;(array[:,3]&nbsp;>&nbsp;90)&nbsp;&&nbsp;(array[:,3]&nbsp;<&nbsp;100)] array([[&nbsp;4.&nbsp;&nbsp;,&nbsp;78.01,&nbsp;65.&nbsp;&nbsp;,&nbsp;98.&nbsp;&nbsp;], &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;6.&nbsp;&nbsp;,&nbsp;45.98,&nbsp;56.54,&nbsp;98.76]])
随时随地看视频慕课网APP

相关分类

Python
我要回答