布尔型索引其实很好理解,简单的说有两个数组,一个数组用于储存姓名,一个数组用于储存数据,布尔型索引就是让这两个数组能互相交互,经过查询姓名数组中的人名来获得对应数据数组里面的值。python
首先咱们先建立两个数组数组
注意:名字数组里面是几,那么对应的数据数组里面的行轴就必须是几bash
经过 ==(等于)号 将名字数组变成一个布尔型的数组微信
经过 !=(不等)和 ~ 号也能够反转条件dom
也能够组合多个布尔条件:函数
mask = (name == '高天') | (name == '王琴')
data[mask]
#使用&(和)、|(或)之类 的布尔算术运算符
复制代码
将data中的负值设置为0学习
data[data<0]=0
data[data==0]=1#设为其余值
data[name != '高天']=7#其余的传值方法复制代码
花式索引在概念上很是简单,它意味着传递一个索引数组来一次性得到多个数组元素
测试
花式索引和切片不同,它老是将数据复制到新数组中。 spa
转置是重塑的一种特殊形式,它返回的是源数据的视图(不会进行任何复制操做)。
.net
arr4.transpose((1,0))#能够本身尝试一下复制代码
arr4.awapaxes(1,0)复制代码
通用函数的全名是universal function(ufunc【缩写】),numpy提供了大量的ufunc的函数。这些函数在对narray进行运算的速度比使用循环或者列表推导式要快不少,但请注意,在对单个数值进行运算时,python提供的运算要比numpy效率高。
blog.csdn.net/unixtch/art…(详细请参考)
ufunc一元运算表
二元运算表
NumPy数组使你能够将许多种数据处理任务表述为简洁的数组表达式(不然须要编 写循环)。用数组表达式代替循环的作法,一般被称为矢量化。通常来讲,矢量化 数组运算要比等价的纯Python方式快上一两个数量级(甚至更多),尤为是各类数 值计算。
补充:
布尔值会被强制转换为1(True)和0(False),所以,sum 常常被用来对布尔型数组中的True值计数。
arr = np.random.randn(100)
(arr>0).sum()复制代码
any方法和all方法
array.any()#any用于测试数组中是否 存在一个或多个True
array.all()#all则检查数组中全部值是否都是True复制代码
NumPy可以读写磁盘上的文本数据或二进制数据,np.save和np.load是读写磁盘数组数据的两个主要函数。
np.load('文件.npy')#经过np.load读取文件
np.savez('文件.npz', a=arr,b=arr)#经过np.savez能够将多个数组保存到一个未压缩文件中,
#将数组以关键字参数的形 式传入便可复制代码
使用normalvariate产生大量样本值
补充:
是根据前100个随机漫步值生成的折线图(仔细看一下代码小伙伴们应该能看懂就不解释了)
想要一块儿交流的小伙伴能够在文章下面留言或者联系个人微信