numpy学习笔记4-array布尔型索引

import numpy as np
rows = ['row1','row2','row3']
data = np.random.randn(3,6)
data

array([[-0.42141001, 0.96098438, -0.39407262, 0.87403018, -0.59991842,
-0.03887353],
[ 0.75180433, 0.93374571, 0.12514512, 0.03392262, -1.29821731,
0.80870674],
[ 0.48073825, -0.70380976, -0.30283321, 0.05413087, -0.41277585,
1.14253068]])

布尔型数组
rows == 'row1'

array([ True, False, False], dtype=bool)

布尔型数组作为索引
data[rows == row1]

array([[-0.42141001, 0.96098438, -0.39407262, 0.87403018, -0.59991842,
-0.03887353]])

布尔型数组索引与切片一起使用
data[rows == 'row1', 3:]

array([[ 0.87403018, -0.59991842, -0.03887353]])

注意布尔型数组的长度必须与数组的轴长度一致

~符号反转条件
data[~(rows == 'row1')]

array([[ 0.75180433, 0.93374571, 0.12514512, 0.03392262, -1.29821731,
0.80870674],
[ 0.48073825, -0.70380976, -0.30283321, 0.05413087, -0.41277585,
1.14253068]])

通过布尔值设置array元素数值

data[data < 0] = 0
data

array([[ 0. , 0.96098438, 0. , 0.87403018, 0. ,
0. ],
[ 0.75180433, 0.93374571, 0.12514512, 0.03392262, 0. ,
0.80870674],
[ 0.48073825, 0. , 0. , 0.05413087, 0. ,
1.14253068]])

posted @ 2019-05-23 22:42  babysteps  阅读(226)  评论(0编辑  收藏  举报