指定一个nan或者inf:
'''
import numpy as np
a = np.inf
print(type(a))
a = np.nan
print(type(a))
numpy中的nan的注意点
1. 两个nan是不相等的
2. np.nan != np.nan
3.利用以上的特性,判断数组中nan的个数
import numpy as np
t = np.array([1,2,np.nan])
x = np.count_nonzero(t!=t)
print(x)
t = np.array([1,2,np.nan])
t[np.isnan(t)] = 0
print(t)
4.通过np.isnan()来判断一个数字是否为nan,返回bool类型。
numpy中的nan的注意点
一般把缺失的数值替换为均值(中值)或者是直接删除有缺失值的一行。
删除有缺失数据的那一行(列)在pandas中介绍。
numpy中常用统计函数
求和:t.sum(axis=None)
均值: t.mean(a,axis=None) 受离群点的影响较大
中值:np.median(t,axis=None)
最大值:t.max(axis=None)
最小值:t.min(axis=None)
极值:np.ptp(t,axis=None)最大值和最小值之差
标准差:t.std(axis=None)
标准差是一组数据平均值分散程度的一种度量。一个较大的标准差,代表大部分数值和其平均值之间差异较大;一个较小的标准差,代表这些数值较接近平均值反映出数据的波动稳定情况,越大表示波动越大,越不稳定。
注意:上述统计函数默认返回多维数组的全部的统计结果,如果指定axis则返回一个当前轴上的结果。
数组的拼接
import numpy as np
t1 = np.arange(12).reshape(2,6)
t2 = np.arange(12,24).reshape(2,6)
t3 = np.vstack((t1,t2)) #竖直拼接
t4 = np.hstack((t1,t2)) #水平拼接
数组的行列交换
import numpy as np
t1 = np.arange(12,24).reshape(3,4)
t1[[1,2],:] = t1[[2,1],:]#行交换
print(t1)
import numpy as np
t1 = np.arange(12,24).reshape(3,4)
t1[:,[0,2]] = t1[:,[2,0]] #列交换
print(t1)
numpy更多好用的方法
1.获取最大值最小值的位置
(1) np.argmax(t,axis=0)
(2) np.argmin(t,axis=1)
2.创建一个全0的数组: np.zeros((3,4))
3.创建一个全1的数组: np.ones((3,4))
4.创建一个对角线为1的正方形数组(方阵): np.eye(3)
numpy生成随机数
np.random.--
参数 | 解释 |
---|---|
.rand(d0,d1,..dn) | 创建d0-dn维度的均匀分布的随机数数组,浮点数,范围0-1 |
.randn(d0,d1,..dn) | 创建d0-dn维度的标准正态分布随机数,浮点数,平均数0,标准差1 |
.randint(low,high,(shape)) | 从给定上下限范围选取随机数整数,范围是low,high,形状是shape |
.uniform(low,high,(size)) | 产生具有均匀分布的数组,low起始值,high结束值,size形状 |
.normal(loc,scale,(size)) | 从指定正态分布中随机抽取样本,分布中心是loc(概率分布的均值),标准差时scale,形状是size |
.seed(s) | 随机数种子,s是给定的种子值。因为计算机生成的是伪随机数,所以通过设定相同的随机数种子,可以每次生成相同的随机数 |
分布的补充
1.均匀分布
在相同的大小范围内的出现概率是等可能的
2.正态分布
呈钟型,两头低,中间高,左右对称。
numpy的注意点copy和view
- a=b完全不复制,a和b相互影响。
- a=b[:],视图的操作,一种切片,会创建新的对象a,但是a的数据完全由b保管,他们两个的数据变化是一致的。
- a=b.copy(),复制,a和b互补影响。