2020-12-01

输入输出

从sklearn导入文件
读取文件使用loadtxt(fpath,skiprows=1,delimiter=",")
文件的样式:
  150    4  setosa  versicolor  virginica
0    5.1  3.5     1.4         0.2          0
1    4.9  3.0     1.4         0.2          0
2    4.7  3.2     1.3         0.2          0
3    4.6  3.1     1.5         0.2          0
4    5.0  3.6     1.4         0.2          0
..   ...  ...     ...         ...        ...
145  6.7  3.0     5.2         2.3          2
146  6.3  2.5     5.0         1.9          2
147  6.5  3.0     5.2         2.0          2
148  6.2  3.4     5.4         2.3          2
149  5.9  3.0     5.1         1.8          2

[150 rows x 5 columns]

计算第一行的数据

  • 平均值,中位数,标准差
print(np.mean(date))
#计算中位数
print(np.median(date))
#计算标准差
print(np.std(date))

  • 计算百分点数
#计算百分点
print(np.percentile(date, [5, 95]))

随机的数据集里面的数据为np.nan

#随机的修改数组中的值
i,j=date.shape
date[np.random.randint(i,size=20),np.random.randint(j,size=20)]=np.nan
print(date)
  • 查找缺失值
#查找缺失值得个数
d=date[:,0]
#得到一个布尔型数组
x=np.isnan(d)
print(np.sum(x))
#挑选数组为TRue的位置
print(np.where(x))

筛选第一列的值大于且第三列的值小于…的行

date=np.loadtxt(fpath,skiprows=1,delimiter=',',usecols=[0,1,2,3])
print(date)
#where 返回的是一个行的地址
x=np.where(np.logical_and(date[:,0]<5.0,date[:,2]>1.5))
print(date[x])

  • 返回没有nan 的行
x=np.isnan(date)
y=date[np.sum(x,axis=1)==0]
print(y[0:11])

计算相关系数

#直接计算公式
#用函数
print(np.corrcoef(date[:, 0], date[:, 2]))

查找数组中是否有缺失值

x=np.isnan(date)
#计算是否有True
np.any(x)
  • 将缺失值改为0
date[np.random.randint(i,size=20),np.random.randint(j,size=20)]=np.nan
#where(条件,正确,否则)
date=np.where(np.isnan(date),0,date)
print(date)

找出唯一出现的数值

unique = np.unique(date)
print(unique)
#也就是找到全部的值,不包括重复的

符合条件的值设置为特定的字符

这个功能和pandas的功能非常相似,就是说搜索条件然后将特定的值设置为具体的字符

label=np.digitize(date[:,2],[0,3,5])
label_map={1:'small',2:'medium',3:'large'}
dates=[label_map[x] for x in label]
print(date)

添加新的列

#第一种方法
p=date[:,0].astype(float)
s=date[:,2].astype(float)
v=(np.pi*p*s**2)/3
date=np.insert(date,5,v,axis=1)
print(date)
#第二种方法
使用np.colunm_stack(a,b)

随机获取数据,使得得到1的数据是2和3的两倍

使用随机取样的方法

s=np.array([1,2,3])
out=np.random.choice(s,size=10,p=[0.5,0.25,0.25])
print(out)

对某一列数据进行排序

#arg方法返回的是一个索引[0,2,4,5,3],然后按照索引去查看。
index=np.argsort(date[:,0])
print(date[index])

查找最多的数据

val,n=np.unique(date[:,2],return_counts=True)
print(val[np.argmax(n)])
print(np.amax(n))
print(n)

获取元素第一次出现的值

index = np.where(date[:, 3] > 1.0)
#位置
print(index[0][0])
#位置上的值
print(date[index[0][0]][3])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值