NumPy进行统计分析

 更新时间:2023年05月14日 11:26:38   作者:清木!  
本文主要介绍了NumPy进行统计分析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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))  # 累计积

到此这篇关于NumPy进行统计分析的文章就介绍到这了,更多相关NumPy 统计分析内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python中queue.Queue之task_done的用法

    python中queue.Queue之task_done的用法

    这篇文章主要介绍了python中queue.Queue之task_done的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python设置Word页面纸张方向为横向

    Python设置Word页面纸张方向为横向

    这篇文章主要为大家详细介绍了Python设置Word页面纸张方向为横向的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起
    2024-02-02
  • scrapy-redis的安装部署步骤讲解

    scrapy-redis的安装部署步骤讲解

    今天小编就为大家分享一篇关于scrapy-redis的安装部署步骤讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • pandas按行按列遍历Dataframe的几种方式

    pandas按行按列遍历Dataframe的几种方式

    这篇文章主要介绍了pandas按行按列遍历Dataframe的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • python 8种必备的gui库

    python 8种必备的gui库

    这篇文章主要介绍了python 8种必备的gui库,帮助大家更好的进行python 开发,感兴趣的朋友可以了解下
    2020-08-08
  • Python OpenCV阈值处理详解

    Python OpenCV阈值处理详解

    阈值处理是一种简单、有效的将图像划分为前景和背景的方法。图像分割通常用于根据对象的某些属性(例如,颜色、边缘或直方图)从背景中提取对象。本文将为大家详细介绍OpenCV中的阈值处理,需要的可以参考一下
    2022-02-02
  • Python字典对象实现原理详解

    Python字典对象实现原理详解

    这篇文章主要介绍了Python字典对象实现原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Pytorch 保存模型生成图片方式

    Pytorch 保存模型生成图片方式

    今天小编就为大家分享一篇Pytorch 保存模型生成图片方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • python3.6使用tkinter实现弹跳小球游戏

    python3.6使用tkinter实现弹跳小球游戏

    这篇文章主要为大家详细介绍了python3.6使用tkinter实现弹跳小球游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • ubuntu16.04升级Python3.5到Python3.7的方法步骤

    ubuntu16.04升级Python3.5到Python3.7的方法步骤

    这篇文章主要介绍了ubuntu16.04升级Python3.5到Python3.7的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08

最新评论