NumPy数值统计基础(四)

  1. 利用数组进行数据统计

1.1将条件逻辑表现为数组运算

np.where(cond, xarr, yarr)函数,其中,cond为条件,符合条件输出xarr,不符合条件输出yarr

xarr = np.array([1.1, 1.2, 1.3, 1.4, 1.5])
yarr = np.array([2.1, 2.2, 2.3, 2.4, 2.5])
cond = np.array([True, False, True, True, False])


# 列表推导式,运行速度较慢且编写复杂
import time
result = [(x if c else y)
          for x, y, c in zip(xarr, yarr, cond)]
print(result)


# np.where函数
result = np.where(cond, xarr, yarr)
print(result)

其中,第二和第三个参数可以不为数组,可以为标量值,例:

arr = np.random.randn(4, 4)
np.where(arr > 0, 2, -2)

输出结果为:

1.2数学和统计方法

其中,cumsum()函数和cumprod()函数会统计中间结果,产生一个由中间结果组成的数组。例:

1.3用于布尔型数组的方法

1.3.1布尔值的转换与统计

在以上方法中,布尔值会被转换成1(True)或者0(False)。例:

1.3.2布尔型数组的两个使用方法,any和all

any用于判断是否存在True,all用于判断是否每一个元素都是True。

例:紧接上文数据,做出如下判断

1.4排序

使用sort()方法排序,其中可以对任何一个轴进行排序。

例:

1.5唯一化以及其他的集合逻辑

例1:

例2:

1.6线性代数

1.6.1矩阵乘法的dot函数

1.6.2numpy.linalg模块

常用的linalg函数

  1. 描述性统计

2.1中心位置(均值、中位数、众数)

2.2发散程度(极差、方差、标准差、变异系数)

  1. NumPy读写文件

3.1二进制的文件读写

3.1.1np.save()函数

import numpy as np  #导入NumPy库
arr = np.arange(100).reshape(10,10)  #创建一个数组
np.save("e:/save_arr",arr)  #保存数组,自动默认文件后缀为.npy

3.1.2np.load()函数

x = np.load("e:/save_arr.npy") 
#读取含有单个数组的文件,文件名必须加后缀

3.1.3np.savez()函数

将多个数组保存在一个文件

arr1 = np.array([[1,2,3],[4,5,6]])
arr2 = np.arange(0,1.0,0.1)
np.savez('e:/savez_arr',arr1,arr2)
print('保存的数组1为:\n',arr1)
print('保存的数组2为:\n',arr2)

3.2读写文本格式的数据

3.2.1np.savetxt()函数

将数组写到某种分隔符隔开的文本文件中

3.2.2np.loadtxt()函数

把文件加载到一个二维数组中

3.2.3np.genfromtxt()函数

面向结构化数组和缺失数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西西弗斯推石头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值