初学Numpy(三)
2015-10-08 15:40
453 查看
布尔型索引
运行结果:
#!/usr/bin/env python #-*-coding:utf-8-*- ''' Description:初学numpy(三)--布尔型索引 Created on 2015年10月8日 @author: zenwan @version: ''' import numpy as np from pprint import pprint names = np.array(['beijing','anhui','shanghai','jiangsu','zhejiang','shanghai','anhui'])#有重复 data = np.random.randn(7,4)#生成正态分布的随机数 pprint(names) pprint(data) ''' 假设names中的每个名字对应data数组中的一行,而我们想要选出对应于名字'shanghai'的所有行。 我们想要选出对应于'shanghai'的所有数据行. 跟算术运算一样,数组的比较运算(如==)也是矢量化的,因此数组names和字符串'shanghai'比较运算会产生一个布尔型数组arr_bool, 这个布尔型数组可以用于素组索引 ''' arr0_bool = (names == 'shanghai')#数组跟字符串比较运算会产生一个布尔型的数组 pprint (arr0_bool) #array([False, False, True, False, False, True, False], dtype=bool) pprint (data[arr0_bool]) #将布尔型数组跟切片、整数、整数序列等混合使用 pprint(data[names == 'shanghai',2:]) pprint(data[names == 'shanghai',3]) #选择'shanghai'以外的其它值等其它组合 arr1_bool =(names != 'shanghai') arr2_bool =((names != 'shanghai')|(names=='jiangsu')) arr2_bool =((names != 'shanghai')&(names=='jiangsu')) #将data中所有的正数设为-1 data[data > 0] = -1#数组的比较运算是矢量化的 pprint (data) #通过一维布尔型数组设置证行或者列,如将'shanghai'的所对应的整行数据设置为0 data [names =='shanghai'] = 0 pprint(data)
运行结果:
array(['beijing', 'anhui', 'shanghai', 'jiangsu', 'zhejiang', 'shanghai', 'anhui'], dtype='|S8') array([[ 0.84608482, 0.51050985, -0.43504218, -1.08530829], [ 0.51865817, -1.0914367 , -0.6953841 , -1.59947846], [-0.9308739 , -0.2748063 , -0.410821 , -1.66078485], [ 0.2290689 , -0.85357479, -0.42896687, 0.97397006], [-0.60247776, -0.24399895, -1.03297297, -0.76709796], [-0.31226921, -0.42020231, 1.12008391, 0.54366616], [ 0.53271514, 0.50497622, 1.02203728, -0.12969158]]) array([False, False, True, False, False, True, False], dtype=bool) array([[-0.9308739 , -0.2748063 , -0.410821 , -1.66078485], [-0.31226921, -0.42020231, 1.12008391, 0.54366616]]) array([[-0.410821 , -1.66078485], [ 1.12008391, 0.54366616]]) array([-1.66078485, 0.54366616]) array([[-1. , -1. , -0.43504218, -1.08530829], [-1. , -1.0914367 , -0.6953841 , -1.59947846], [-0.9308739 , -0.2748063 , -0.410821 , -1.66078485], [-1. , -0.85357479, -0.42896687, -1. ], [-0.60247776, -0.24399895, -1.03297297, -0.76709796], [-0.31226921, -0.42020231, -1. , -1. ], [-1. , -1. , -1. , -0.12969158]]) array([[-1. , -1. , -0.43504218, -1.08530829], [-1. , -1.0914367 , -0.6953841 , -1.59947846], [ 0. , 0. , 0. , 0. ], [-1. , -0.85357479, -0.42896687, -1. ], [-0.60247776, -0.24399895, -1.03297297, -0.76709796], [ 0. , 0. , 0. , 0. ], [-1. , -1. , -1. , -0.12969158]])
相关文章推荐
- 深度学习(九)caffe预测、特征可视化python接口调用
- python编码问题(2)
- Python的图形界面工具----PyQt
- python下很帅气的爬虫包 - Beautiful Soup 示例
- windows下python实现截图功能
- 初学Numpy(二)
- 《Python基础教程 第2版·修订版》 第2章 列表和元组(学习笔记·总)
- 搭建或者升级Python环境笔记,吐血记录!
- Python运算符
- 使用Python进行多进程编程
- Python学习路线
- Python入门-引号
- Python入门-多行语句
- Python入门-行和缩进
- 1.Python标准库_正则表达式 (re包)
- Python变量和类型
- [code] python+selenium实现打开一个网页
- python连接phoenix
- python sys.argv[]用法
- Python re正则表达式