前言

numpy是python的科学计算模块,底层实现用c代码,运算效率很高。numpy的核心是矩阵narray运算。

narray介绍

  • 矩阵拥有的属性

ndim属性:维度个数

shape属性:维度大小

dtype属性:数据类型

常用矩阵创建方法

  1. import numpy as np
  2. # 由列表转化
  3. np.array([[1,2],[3,4]])
  4. # 创建多维随机浮点数矩阵,区间0.0 ~ 1.0
  5. arr = np.random.rand(3, 4)
  6. # 创建多维整数矩阵,指定随机区间
  7. arr = np.random.randint(-1, 5, size = (3, 4))
  8. # 创建多维随机浮点数矩阵,指定区间
  9. np.random.uniform(-1, 5, size = (3, 4))
  10. # 创建全是0的矩阵
  11. np.zeros((3,4))
  12. # 仿照一个矩阵的形状和类型创建0矩阵
  13. np.zeros_like([3,4])
  14. # 创建1的矩阵
  15. np.ones((3,4))
  16. #仿照一个矩阵的形状和类型创建1矩阵
  17. np.ones_like((3,4))
  18. # 创建随机值
  19. np.empty((3,4))
  20. # 对原来矩阵打乱顺序
  21. np.random.shuffle(arr)

常用基础运算方法

如果python代码中有很多涉及数学运算的操作,使用numpy是一种很好的提高运算效率的方法。

  1. import numpy as np
  2. np.sum() # 计算矩阵元素的和
  3. np.mean() # 计算平均值
  4. np.e # 自然数e
  5. np.pi # 自然数π
  6. np.abs() # 计算绝对值,可以是数组
  7. np.std(li) # 计算标准差
  8. np.var() # 计算方差
  9. np.max() # 计算最大值
  10. np.min() # 计算最小值
  11. np.cov(a,b) # 计算协方差,得到矩阵,去[0,1]或[1,0]位置的为协方差
  12. np.alen(a) # 计算矩阵的长度,多维矩阵计算第一列的长度,即列数
  13. np.argmax() # 返回最大索引下标值
  14. np.argmin() # 返回最小索引下标值
  15. np.ceil(): # 向上最接近的整数,参数是 number 或 array
  16. np.floor(): # 向下最接近的整数,参数是 number 或 array
  17. np.rint(): # 四舍五入,参数是 number 或 array
  18. np.isnan(): # 判断元素是否为 NaN(Not a Number),参数是 number 或 array,返回布尔矩阵
  19. np.multiply(arr1, arr2): # 对应元素相乘,参数是 number 或 array
  20. np.divide(arr1, arr2): # 元素相除,参数是 number 或 array
  21. np.where(condition, x, y): # 三元运算符,x if condition else y
  22. np.any(): # 至少有一个元素满足指定条件,返回True
  23. np.all() # 所有的元素满足指定条件,返回True
  24. np.unique() # 去除重复值并返回上升的排序结果
  25. v = np.who({'aaa':arr1}) # 打印arr的相关属性

矢量的加减乘

  1. arr1 = np.random.randint(0,10,size=(3,4))
  2. print(arr1*arr1) # 相对应元素相乘
  3. print(arr1+arr1) # 对应元素相加
  4. print(arr1-arr1) # 对应元素相减

布尔判断

  1. arr1 = np.random.randint(0,10,size=(2,3))
  2. print(arr1 < 5)
  3. [[False False False]
  4. [False True False]]

矩阵转换

  1. # 多维使用数字表示维数,0,1,2,3代表四维
  2. arr = np.random.rand(2,3) # 2x3 数组
  3. print(arr.transpose()) # 转换为 3x2 数组,默认规则行列交换
  4. arr.transpose((3,2,1,0)) # 行和列交换
  5. arr1 = arr.T # 行列交换
  6. # 从原来矩阵按规则产生新矩阵
  7. np.take()
  8. >>> a = [4, 3, 5, 7, 6, 8]
  9. >>> indices = [0, 1, 4]
  10. >>> np.take(a, indices)
  11. array([4, 3, 6])
  12. >>> np.take(a, [[0, 1], [2, 3]])
  13. array([[4, 3],
  14. [5, 7]])
  15. # 在不改变数据的情况下改变矩阵形状
  16. np.reshape()
  17. >>> np.reshape(a, (2, 3))
  18. array([[0, 1, 2],
  19. [3, 4, 5]])
  20. # 数据复制
  21. np.repeat()
  22. >>> np.repeat(3, 4)
  23. array([3, 3, 3, 3])

读取数据文件

从txt文件中加载矩阵数据。

  1. data_array = np.loadtxt(filename, # 文件名
  2. delimiter=',', # 分隔符
  3. dtype=int, # 数据类型,指的是生成的矩阵的数据类型
  4. usecols=(0,1)) # 指定读取的列号

参考

python第三方库之numpy基础的更多相关文章

  1. Python第三方库之Numpy库

    概述 Numpy  最基本的库,是用于处理含有同种元素的多维数组运算的第三方库 —科学计算包,python数据分析及科学计算的基础库,几乎支撑所有其他库 —支持N维数组运算.处理大型矩阵.成熟的广播函 ...

  2. 【Python基础】安装python第三方库

    pip命令行安装(推荐) 打开cmd命令行 安装需要的第三方库如:pip install numpy 在安装python的相关模块和库时,我们一般使用“pip install  模块名”或者“pyth ...

  3. Python第三方库matplotlib(2D绘图库)入门与进阶

    Matplotlib 一 简介: 二 相关文档: 三 入门与进阶案例 1- 简单图形绘制 2- figure的简单使用 3- 设置坐标轴 4- 设置legend图例 5- 添加注解和绘制点以及在图形上 ...

  4. Python第三方库资源

    [转载]Python第三方库资源   转自:https://weibo.com/ttarticle/p/show?id=2309404129469920071093 参考:https://github ...

  5. 常用Python第三方库 简介

    如果说强大的标准库奠定了python发展的基石,丰富的第三方库则是python不断发展的保证,随着python的发展一些稳定的第三库被加入到了标准库里面,这里有6000多个第三方库的介绍:点这里或者访 ...

  6. python第三方库自动安装脚本

    #python第三方库自动安装脚本,需要在cmd中运行此脚本#BatchInstall.pyimport oslibs = {"numpy","matplotlib&qu ...

  7. python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑

    python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件?当我们点开下载页时, 一般 ...

  8. 安装python第三方库

    前言 接触python编程很晚,基础语法比较好理解,但是用起来还是需要用心的,特别是可能会用到许多第三方库,本文就介绍一下python第三方库的安装. 环境 系统环境:win7_64; Python版 ...

  9. Python第三方库wordcloud(词云)快速入门与进阶

    前言: 笔主开发环境:Python3+Windows 推荐初学者使用Anaconda来搭建Python环境,这样很方便而且能提高学习速度与效率. 简介: wordcloud是Python中的一个小巧的 ...

随机推荐

  1. 【C++】不要在构造函数或析构函数内调用虚函数

    这个问题来自于<Effective C++>条款9:永远不要在构造函数或析构函数中调用虚函数 . 假设有如下代码: class Transaction {// 所有交易的基类 public ...

  2. MVC中ajax提交表单示例

    页面中: @using (Ajax.BeginForm("Login", "User", new AjaxOptions() { HttpMethod = &q ...

  3. 高斯消元模板(pascal)

    洛谷P3389评测 program rrr(input,output); const eps=1e-8; var a:..,..]of double; n,i,j,k:longint; t:doubl ...

  4. 网络流24题之星际转移问题(洛谷P2754)

    洛谷 P2754 题目背景 none! 题目描述 由于人类对自然资源的消耗,人们意识到大约在 2300 年之后,地球就不能再居住了.于是在月球上建立了新的绿地,以便在需要时移民.令人意想不到的是,21 ...

  5. "XX cannot be resolved to a type "eclipse报错及解决

    好久都没有写博了,还记得自己准备考研,结果你会发现——你永远不知道,你将会走上哪个路. 长远的目标是好的,但有些时候身不由己也迫不得已!做好自己的当下就是好的. 不论搞什么,总会遇到各种各样的问题,以 ...

  6. 【BZOJ2007】【NOI2010】海拔(最小割,平面图转对偶图,最短路)

    [BZOJ2007][NOI2010]海拔(最小割,平面图转对偶图,最短路) 题面 BZOJ 洛谷 Description YT市是一个规划良好的城市,城市被东西向和南北向的主干道划分为n×n个区域. ...

  7. 洛谷 P1858 多人背包 解题报告

    P1858 多人背包 题目描述 求01背包前k优解的价值和 输入输出格式 输入格式: 第一行三个数\(K\).\(V\).\(N\) 接下来每行两个数,表示体积和价值 输出格式: 前k优解的价值和 说 ...

  8. SCOI2014极水的题解- -

    话说SCOI都考了1个月了,终于拿出决心把题解补完了,但都说了是极水的题解,大家就看着玩吧- - DAY1 T1:目标是找最长不降子序列,先就有一个比较显然的结论,就是假如我们要拔高区间[L, R], ...

  9. 日志分割工具——cronolog

    使用cronolog可以格式化日志文件的格式,比如按时间分割,易于管理和分析. 1.下载软件 http://cronolog.org/download/index.html 用法见 lighttpd配 ...

  10. 【极值问题】【CF33C】 Wonderful Randomized Sum

    传送门 Description 给你一个数列\(A\),你可以选择任意一个前缀和任意一个后缀,前缀后缀可重合.给他们乘\(-1\).求最大能获得的序列和. Input 第一行是一个数\(n\)代表数列 ...