NumPy进行统计分析
作者:清木! 发布时间:2023-09-21 00:16:15
1 读/写文件
NumPy文件读写主要有二进制的文件读写和文件列表形式的数据读写两种形式
1、二进制的文件读写
save函数是以二进制的格式保存数据。 np.save(“…/tmp/save_arr”,arr) load函数是从二进制的文件中读取数据。 np.load(“…/tmp/save_arr.npy”) savez函数可以将多个数组保存到一个文件中。 np.savez(‘…/tmp/savez_arr’,arr1,arr2) 存储时可以省略扩展名,但读取时不能省略扩展名。
# 利用NumPy进行统计分析
# 2.3.1读写文件
# 1、二进制数据存储
# 一个数组存储,用save()方法,后缀是.npy
# 存储时可以省略扩展名,但是读取时不能省略。
import numpy as np
arr = np.arange(25).reshape(5,5)
np.save("F:/test/save_arr",arr) #保存数组
print(arr)
data1 = np.load("F:/test/save_arr.npy") # 读取数据
print(data1)
# 2、多个数组存储,使用savez(),后缀是.npz
arr1 = np.array([[1,2,3],[4,5,6]])
arr2 = np.arange(0,1,0.2)
np.savez("F:/test/save_arr2",arr1,arr2) #保存数组
print(arr1)
print(arr2)
data2 = np.load("F:/test/save_arr2.npz")
print(data2['arr_0'])
print(data2['arr_1'])
2、读取文本格式的数据
savetxt函数是将数组写到某种分隔符隔开的文本文件中。 np.savetxt(“…/tmp/arr.txt”, arr, fmt=“%d”, delimiter=“,”) loadtxt函数执行的是把文件加载到一个二维数组中。 np.loadtxt(“…/tmp/arr.txt”,delimiter=“,”) genfromtxt函数面向的是结构化数组和缺失数据。 np.genfromtxt(“…/tmp/arr.txt”, delimiter = “,”)
# 3、文件存储与读写
arr = np.arange(0, 12, 1).reshape(4, -1)
print(arr)
np.savetxt("F:/test/save_arr.txt", arr, fmt="%d", delimiter=',')
data = np.loadtxt("F:/test/save_arr.txt", delimiter=',')
print(data)
# 使用genfromtxt读取数据
data2 = np.genfromtxt("F:/test/save_arr.txt", delimiter=',')
print(data2)
2 使用数组进行简单统计分析
1、排序
直接排序 sort函数是最常用的排序方法:arr.sort() sort函数也可以指定一个axis参数,使得sort函数可以沿着指定轴对数据集进行排序。axis=1为沿横轴排序; axis=0为沿纵轴排序。 间接排序 argsort函数返回值为重新排序值的下标。 arr.argsort() lexsort函数返回值是按照最后一个传入数据排序的。 np.lexsort((a,b,c))
# 2.3.2 使用函数进行简单的统计分析
# 1、排序
np.random.seed(0) #设置随机种子
arr = np.random.randint(1, 10, size=10)
print(arr)
arr.sort # 直接排序
print(arr)
# 二维数组
np.random.seed(0) #设置随机种子
arr2 = np.random.randint(1,10, size=(3,3))
print(arr2)
arr2.sort(axis=1) # axis=1沿着横轴排序
print(arr2)
arr2.sort(axis=0) # axis=0沿着纵轴排序
print(arr2)
# argsort()排序
np.random.seed(0) #设置随机种子
arr = np.random.randint(1, 10, size=6)
print(arr)
print(arr.argsort()) # argsort()返回的是新数据在原数据序列中的位置
# lexsort()排序
a = np.array([3,2,6,4,5])
b = np.array([50, 30, 40, 20, 10])
c = np.array([400, 300, 600, 100, 200])
d = np.lexsort((a,b,c)) # lexsort()只接收一个参数,即(a,b,c)
# 多个键值排序时是按照最后一个传入数据计算的
print(list(zip(a[d], b[d], c[d])))
2、去重与重复数据
去重: 通过unique函数可以找出数组中的唯一值并返回已排序的结果。 重复: np.tile(A,reps) tile函数主要有两个参数,参数“A”指定重复的数组,参数“reps”指定重复的次数。 numpy.repeat(a, repeats, axis=None) repeat函数主要有三个参数,参数“a”是需要重复的数组元素,参数“repeats”是重复次数,参数“axis”指定沿着哪个轴进行重复,axis = 0表示按行进行元素重复;axis = 1表示按列进行元素重复。 这两个函数的主要区别在于,tile函数是对数组进行重复操作,repeat函数是对数组中的每个元素进行重复操作。
# 2、去重与重复数据
arr = np.array([5,2,3,5,3,2,4,3])
print(arr)
arr = np.unique(arr) # 去重且排序 == sorted(set(arr))
print(arr)
# 使用tile()和repeat()函数实现数据重复
arr = np.arange(5)
print(arr)
print(np.tile(arr,3)) # 重复三次
print(arr.repeat(3)) # 重复三次
3、常用的统计函数
当axis=0时,表示沿着纵轴计算。当axis=1时,表示沿着横轴计算。默认时计算一个总值。
# 3、常用的统计函数
arr = np.arange(1,13,1).reshape(3,4)
print(arr)
print(np.sum(arr)) # 和
print(arr.sum(axis=1)) # 横轴的和
print(arr.sum(axis=0)) # 纵轴的和
print(np.mean(arr)) # 均值
print(arr.mean(axis=1)) # 横轴的均值
print(arr.mean(axis=0)) # 纵轴的均值
print(np.std(arr)) # 标准差
print(np.var(arr)) # 方差
print(np.min(arr)) # 最小值
print(np.max(arr)) # 最大值
print(np.argmin(arr)) # 最小值的索引
print(np.argmax(arr)) # 最大值的索引
print(np.cumsum(arr)) # 累计和
print(np.cumprod(arr)) # 累计积
来源:https://blog.csdn.net/QMU111/article/details/130589947


猜你喜欢
- 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个
- 前言这节课很重要。。界面整洁美观与否就看布局了。。这里讲布局方法,至于设计的天赋与最终界面的美感那就看造化了。。本文主要讲述Qt Desig
- 本文实例讲述了PHP中Static(静态)关键字功能与用法。分享给大家供大家参考,具体如下:1、什么是static?static 是C++中
- 你可以通过自定义函数接口 (UDF)来添加函数。自定义函数被编译为目标文件,然后用CREATE FUNCTION 和DROP FUNCTIO
- 如下所示:import osimport structimport pandas as pddef readTdxLdayFile(fnam
- 环境:Ubuntu16.4 python版本:3.6.4 库:wordcloud这次我们要讲的是爬取QQ音乐的评论并制成云词图,我们这里拿周
- 上一篇文章为大家介绍了 GoFrame gcache使用实践 | 缓存控制 淘汰策略 ,得到了大家积极的反馈。后续几篇文章再接再厉,仍然为大
- 本文介绍一下 Pytorch 中常用乘法的 TensorRT 实现。pytorch 用于训练,TensorRT 用于推理是很多 AI 应用开
- 这里分享一些轨迹聚类的基本方法,涉及轨迹距离的定义、kmeans聚类应用。需要使用的python库如下import pandas as pd
- 前言kettle是一款免费开源的、可视化的、国际上比较流行的、功能强大的ETL必备工具,在ETL这一方面做的还不错,下面介绍一下基于win1
- 下面和大家分享一下具体的实现过程。HTML标签结构:<ul class="animation_menu">&
- 巨坑,切忌不要轻易删除Linux系统自带版本的Python1.卸载python(防止未卸载干净)rpm -qa|grep python|xa
- 我们用Select的onchange事件时,常会遇到这样一个问题,那就是连续选相同一项时,不触发onchange事件.select的onch
- 主要逻辑是判断文件的最后修改时间与创建时间是否在秒级别上一致,此代码适用于Python 2.import timeimport os#Rea
- 大家好,给大家分享下如何使用Python脚本操作Excel实现批量替换。使用的工具Openpyxl,一个处理excel的python库,处理
- 1.按列取、按索引/行取、按特定行列取import numpy as npfrom pandas import DataFrameimpor
- 前言:模拟学生成绩信息写入es数据库,包括姓名、性别、科目、成绩。示例代码1:【一次性写入10000*1000条数据】 【本人亲
- 如下所示:import osimport cv2import sysimport numpy as nppath = "F:\\I
- 1.CNN卷积层通过nn.Conv2d可以设置卷积层,当然也有1d和3d。卷积层设置完毕,将设置好的输入数据,传给layer(),即可完成一
- 提叻一个代码段,要人帮助解释一下。 代码段如下: declare type t_indexby is table of number ind