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'])

NumPy进行统计分析

NumPy进行统计分析

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)

NumPy进行统计分析

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])))

NumPy进行统计分析

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))  # 重复三次

NumPy进行统计分析

3、常用的统计函数

当axis=0时,表示沿着纵轴计算。当axis=1时,表示沿着横轴计算。默认时计算一个总值。

NumPy进行统计分析

# 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进行统计分析

来源:https://blog.csdn.net/QMU111/article/details/130589947

标签:NumPy,统计分析
0
投稿

猜你喜欢

  • Anaconda 查看、创建、管理和使用python环境的方法

    2023-11-29 02:34:48
  • python分数表示方式和写法

    2021-07-08 18:09:19
  • PHP使用CURL实现多线程抓取网页

    2024-06-05 09:48:25
  • Pycharm无法显示动态图片的解决方法

    2023-01-29 23:13:42
  • python list格式数据excel导出方法

    2023-09-19 14:21:01
  • JavaScript使用math.js进行精确计算操作示例

    2024-04-10 10:54:41
  • python根据字典的键来删除元素的方法

    2023-05-08 00:58:57
  • Python数据提取-lxml模块

    2022-04-03 15:15:19
  • Python通过websocket与js客户端通信示例分析

    2021-03-23 08:35:49
  • Python+Pygame实现彩色五子棋游戏

    2021-03-29 23:47:34
  • 浅谈javascript中的作用域

    2024-05-11 09:31:22
  • 支付宝 接口开发帮助(asp,php,asp.net,jsp)

    2024-05-21 10:11:35
  • 从pandas一个单元格的字符串中提取字符串方式

    2022-10-14 21:24:35
  • 在EditPlus中配置Perl开发编译环境

    2023-12-04 08:34:08
  • 让SQL Server数据库自动执行管理任务(二)

    2009-03-20 11:40:00
  • Python结合ImageMagick实现多张图片合并为一个pdf文件的方法

    2021-01-28 20:36:55
  • python实现巡检系统(solaris)示例

    2022-03-01 20:32:11
  • 如何读取一个.ini文件?

    2009-11-18 20:58:00
  • 使用git处理github中提交有冲突的pull request的问题

    2023-03-18 13:27:55
  • python主线程与子线程的结束顺序实例解析

    2023-10-09 12:46:07
  • asp之家 网络编程 m.aspxhome.com