Numpy的常用函数

  1. 算术平均值 numpy.mean
    样本: S = [s1, s2, …, sn]
    算术平均值: M = (s1 + s2 + … + sn) / n
    我们举个例子
    在现实中,我们反复测量一个物体的实际高度可以得到这样一组数据
    S = [s1, s2, …, sn]
    这组数据围绕着这个物体的实际高度(真值)上下波动
    每个数据与真值的差为d
    即:
    s1 = s + d1
    s2 = s + d2

    sn = s + dn
    那么算术平均值为: M = s + (d1 + d2 + … + dn) / n
    当(d1 + d2 + … + dn) / n趋近于零时,M就近似于s
    算术平均值就是当样本数足够的条件下对真值得无偏估计。
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import numpy as np
S = np.array([5.10,5.02,5.03,4.96,4.98])
mean = 0
for s in S:mean += s
mean /= s
print(mean)
mean = np.mean(S)
print(mean)
mean = S.mean()
print(mean)
  1. 加权平均值
    numpy.average(样本数组, weights=权重数组)
    加权算术平均数同时受到两个因素的影响,一个是各组数值的大小,另一个是各组分布频数的多少。在数值不变的情况下,一组的频数越多,该组的数值对平均数的作用就大,反之,越小。

    频数在加权算术平均数中起着权衡轻重的作用,这也是加权算术平均数“加权”的含义。

    这是苹果某一年某一月的股票收盘价
    样本:S = [s1, s2, …, sn]
    权重:W = [w1, w2, …, wn]
    加权平均值:
    a = (s1w1+s2w2+…+snwn)/(w1+w2+…+wn)

closing_prices, volumes = np.loadtxt('../../data/aapl.csv', delimiter=',',usecols=(6, 7), unpack=True)                 #数据读取
vwap, wsum = 0, 0
for closing_price, volume in zip(closing_prices, volumes):vwap += closing_price * volumewsum += volume
vwap /= wsum
print(vwap)
vwap = np.average(closing_prices, weights=volumes)
print(vwap)
  1. 最值
    numpy.max() 一个数组中的最大元素
    numpy.min() 一个数组中的最小元素
    numpy.argmax() 一个数组中最大元素的下标
    numpy.argmin() 一个数组中最小元素的下标
    numpy.maximum() 把两个数组中相对应位置的最大元素收集到一个新的数组中
    numpy.minimum() 把两个数组中相对应位置的最小元素收集到一个新的数组中
    numpy.ptp() 一个数组中最大元素与最小元素的差
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import numpy as np
# 产生9个位于[10, 100)区间的服从均匀分布的随机数
a = np.random.randint(10, 100, 9).reshape(3, 3)
print(a)
b, c = np.max(a), np.min(a)
print(b, c)
d, e = np.argmax(a), np.argmin(a)
print(d, e)
names = np.array(['zhangfei', 'zhaoyun', 'guanyu'])
scores = np.array([70, 90, 80])
print(names[np.argmax(scores)])
f = np.random.randint(10, 100, 9).reshape(3, 3)
print(f)
g, h = np.maximum(a, f), np.minimum(a, f)
print(g, h, sep='\n')
i = np.ptp(a)
print(i)
  1. 中位数
    一个有限数组中位置正中间的数,假如数组总个数是偶数,取中间两个数的平均值。
    numpy.median()
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import numpy as np
s = np.array([2,5,6,3,4,9])
print(median)
median = np.median(closing_prices)
print(median)
  1. 标准差
    样本:S = [s1, s2, …, sn]
    均值:m = (s1+s2+…+sn)/n -> 真值
    离差:D = [d1, d2, …, dn], di = si - m
    离差方:Q = [q1, q2, …, qn], qi = di^2
    (总体)方差:v = (q1+q2+…+qn)/n
    (总体)标准差:std = sqrt(v) -> 方均根误差,表示所有样本相对于真值的偏离程度。将其作为表征一组随机量分 散性的指标
    (样本)方差:v’ = (q1+q2+…+qn)/(n-1)
    (样本)标准差:std’ = sqrt(v’)
    样本量越大越能反映真实的情况,而算术平均值却完全忽略了这个问题,对此统计学上早有考虑,在统计学中样本的均差多是除以自由度(n-1),它的意思是样本能自由选择的程度。当选到只剩一个时,它不可能再有自由了,所以自由度是n-1。
    np.std(样本数组, ddof=非自由度(缺省0))->标准差
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import numpy as np
s = np.arange(1,9)
# 均值
mean = s.mean()
# 离差
devs = s - mean
# 总体方差
pvar = (devs ** 2).sum() / devs.size
# 总体标准差
pstd = np.sqrt(pvar)
# 样本方差
svar = (devs ** 2).sum() / (devs.size - 1)
# 样本标准差
sstd = np.sqrt(svar)
print(pstd, sstd)
pstd = np.std(s)
sstd = np.std(s, ddof=1)
print(pstd, sstd)

Numpy 使用总结(三)相关推荐

  1. Github上Pandas,Numpy和 Scipy三个库中20个最常用的函数

    首发于Datartisan数据工匠 写文章 Github上Pandas,Numpy和 Scipy三个库中20个最常用的函数 Datartisan 9 个月前 几个月前,我看到一篇博客中列出了 Gith ...

  2. numpy 中的三个特别的索引操作 c_, r_, s_

    简 介: 在numpy中对于矩阵存在r_,c_,s_三个操作,r_是基本的操作,c_是相当于r_['-1,2,0',a,a]的操作,s_则只是生成索引的操作. 关键词: 矩阵链接操作 #mermaid ...

  3. NumPy 学习 第三篇:矢量化和广播

    矢量化 矢量化是指用数组表达式替换显式的for循环,在Python中循环数组或其他跟数组类似的数据结构时,使用循环会涉及很多开销.NumPy中的矢量化操作把内部循环委托给高度优化的C和Fortran函 ...

  4. Numpy库的三种矩阵乘法

    本文介绍了 Numpy 库支持的三种矩阵乘法. 1. 元素级乘法 使用 multiply 函数或 * 运算符实现元素之间的乘法 import numpy as np# 创建两个矩阵 m = np.ar ...

  5. numpy知识点整合(三) :numpy习题(前50题必须会)

    1.导入numpy并缩写为np import numpy as np 2.打印numpy的版本和配置信息 print(np.__version__) np.show_config() 3.创建一个长度 ...

  6. Python数据分析numpy入门(三)-------numpy100题练习

    Python数据分析基础 二.numpy100题练习 二.numpy100题练习 1.Import the numpy package under the name np (★☆☆). 导入numpy ...

  7. 最简易上手的numpy学习笔记三

    1 数组的复制 2 改变数组的维度 改变这些数组的维度,包含提高数组的维度和降低数组的维度,还包括数组的转置. 通过reshape方法可以将一维数组变成二维.三维或者多维数组.通过ravel方法或fl ...

  8. Numpy学习笔记三——数组切片、bool索引、掩码和花哨索引

    Numpy数组切片.bool索引.掩码和花哨索引 数组切片(slice) 数组切片的公式为 my_array[start: end: step, start: end: step] #示例1: imp ...

  9. NumPy 初学者指南中文第三版·翻译完成

    原文:NumPy: Beginner's Guide - Third Edition 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅 ...

  10. Python中的向量、矩阵(numpy)

    1.向量.矩阵表示: numpy的向量表示是通过array数组来实现的 一维向量(行.列): 在numpy中一维向量用一位数组array([1, 1, 1])表示,既能表示行向量也能表示列向量,一维向 ...

最新文章

  1. Vue+abp微信扫码登录
  2. leetcode 456. 132 模式(单调栈)
  3. LeetCode20——Valid Parentheses(括号匹配问题,使用栈的知识)
  4. 指纹对比软件_iQOO VS 小米9屏幕指纹大对决,这次我为vivo疯狂打Call!
  5. Docker从入门到实战(四)
  6. 每天进步一点点《ML - 正则化代价函数》
  7. uniapp中封装ajax方法
  8. socket解读,http和socket之长连接和短连接区别!
  9. 【iOS-Cocos2d游戏开发之七】添加/删除系统组件,并解决View设置透明会影响View中的其他组件的问题!...
  10. 【安装包】Dev-cpp
  11. 计算机驱动程序的安装过程,电脑常用的驱动程序的安装与管理
  12. 程序设计导引及在线实践——练习记录
  13. UZCMS镜像站群旗舰版镜像程序SEO源码
  14. QPS、TPS是什么
  15. 怎么看PLC梯形图?
  16. 怎样查出SQLServer的性能瓶颈
  17. 华为cpe虚拟服务器,你真的看懂它了吗?华为5G CPE Pro深度体验
  18. category ue 协议_LTE中UE能力(UE Capability)的梳理和解析
  19. java 异常之Cause: org.apache.ibatis.executor.ExecutorException: Executor was closed
  20. 纯前端实现xls表格下载

热门文章

  1. 【数据结构与算法】之深入解析“1比特与2比特字符”的求解思路与算法示例
  2. 路由配置与管理——BGP路由配置与管理1
  3. html是什么意思 它是一种什么样的语言,HTML 是什么?
  4. RAID 磁盘列阵与阵列卡
  5. 五、神奇的自然常数e之“自然”魅力
  6. 考研英语作文—谋篇布局
  7. Ubuntu20.04安装Mysql(亲测有效,一定要按步骤来)
  8. go语言报错reflect: reflect.Value.SetInt using value obtained using unexported field 解决方法
  9. HDU 6468 zyb的面试(找规律?)
  10. Dataframe中添加一列