numpy的基础运算2-【老鱼学numpy】
numpy的基础运算中还有很多运算,我们这里再记录一些。
最小/大值索引
前面一篇博文中我们讲述过如何获得数组中的最小值,这里我们获得最小/大值的索引值,也就是这个最小/大值在整个数组中位于第几位。
import numpy as np
a = np.array([[10, 30, 15],
[20, 5, 25]])
print("a=")
print(a)
print("最小值索引:", a.argmin())
print("最大值索引:", np.argmax(a))
输出为:
a=
[[10 30 15]
[20 5 25]]
最小值索引: 4
最大值索引: 1
这就意味着这里最小值的索引号是4,也就是数组中第4位的值,也就是数值5。
平均值
import numpy as np
a = np.array([[10, 30, 15],
[20, 5, 25]])
print("a=")
print(a)
print("平均值:", a.mean())
输出为:
a=
[[10 30 15]
[20 5 25]]
平均值: 17.5
我们也可以通过axis参数来指定到底是在行上的平均值还是列上的平均值。
例如,我们使用axis=1来指示行上的平均值:
import numpy as np
a = np.array([[10, 30, 15],
[20, 5, 25]])
print("a=")
print(a)
print("行平均值:", a.mean(axis=1))
输出为:
a=
[[10 30 15]
[20 5 25]]
行平均值: [ 18.33333333 16.66666667]
累积求和
import numpy as np
a = np.array([10, 30, 15, 20, 5, 25])
print("a=")
print(a)
print("累积求和:", a.cumsum())
输出:
a=
[10 30 15 20 5 25]
累积求和: [ 10 40 55 75 80 105]
累差
import numpy as np
a = np.array([4, 6, 9, 1, 9])
print("a=")
print(a)
print("累差:", np.diff(a))
输出:
a=
[4 6 9 1 9]
累差: [ 2 3 -8 8]
输出结果就是后一个元素的值减去前一个元素的值,最终元素的个数少1。
找出非0的数
import numpy as np
a = np.array([[4, 0, 9],
[1, 0, 8]])
print("a=")
print(a)
print("找出非零的数:", np.nonzero(a))
输出为:
a=
[[4 0 9]
[1 0 8]]
找出非零的数: (array([0, 0, 1, 1], dtype=int64), array([0, 2, 0, 2], dtype=int64))
在上述的输出结果中表示的非0数是相应的索引位置,因为我们是二维数组,所以结果有两段,第一段表示某一维中的索引号,另一段表示的是另一维的索引号。
具体解读为其中的非零值位于:(0, 0), (0, 2), (1, 0), (1, 2)
也就是其中数字4、9、1、8所在的索引位置。
排序
import numpy as np
a = np.array([[4, 0, 9],
[1, 0, 8]])
print("a=")
print(a)
print("排序结果:")
print(np.sort(a))
输出:
a=
[[4 0 9]
[1 0 8]]
排序结果:
[[0 4 9]
[0 1 8]]
转置矩阵
转置矩阵就是把行变成列,列变成行。例如:
import numpy as np
a = np.array([[4, 0, 9],
[1, 0, 8]])
print("a=")
print(a)
print("转置矩阵:")
print(np.transpose(a))
输出为:
a=
[[4 0 9]
[1 0 8]]
转置矩阵:
[[4 1]
[0 0]
[9 8]]
也可以用简写的方式:a.T,这个读者自己去试试吧。
截取矩阵中的数据
把矩阵中的数改变成只属于某个数据范围内的数,例如:
import numpy as np
a = np.array([[4, 6, 9],
[1, 7, 8]])
print("a=")
print(a)
print("np.clip:")
print(np.clip(a, 3, 7))
输出为:
a=
[[4 6 9]
[1 7 8]]
np.clip:
[[4 6 7]
[3 7 7]]
这样就把其中的元素都设置成了3到7的范围之内的数,比3小的数被修改成了3,比7大的数被修改成了7。
numpy的基础运算2-【老鱼学numpy】的更多相关文章
- numpy的基础运算-【老鱼学numpy】
概述 本节主要讲解numpy数组的加减乘除四则运算. np.array()返回的是numpy的数组,官方称为:ndarray,也就是N维数组对象(矩阵),N-dimensional array obj ...
- numpy有什么用【老鱼学numpy】
老鱼为了跟上时代潮流,也开始入门人工智能.机器学习了,瞬时觉得自己有点高大上了:). 从机器学习的实用系列出发,我们会以numpy => pandas => scikit-learn =& ...
- numpy的array合并-【老鱼学numpy】
概述 本节主要讲述如何把两个数组按照行或列进行合并. 按行进行上下合并 例如: import numpy as np a = np.array([1, 1, 1]) b = np.array([2, ...
- numpy array的复制-【老鱼学numpy】
对象的引用 看例子: a = np.array([0, 1, 2, 3]) b = a a[0] = 5 print("b=", b) # 判断a和b是否是同样的地址 print( ...
- python开发环境搭建及numpy基本属性-【老鱼学numpy】
目的 本节我们将介绍如何搭建python的开发环境以及numpy的基本属性,这样可以检验我们的numpy是否安装正确了. python开发环境的搭建 工欲善其事必先利其器,我用得比较顺手的是Intel ...
- numpy安装-【老鱼学numpy】
要玩numpy,就得要安装numpy. 安装python 3.6.3 64位 首先需要安装python,安装python的具体方法这里就不细讲了. 可以到官网上下载相应的python版本就可以了,目前 ...
- numpy创建array【老鱼学numpy】
在上一篇文章中,我们已经看到了如何通过numpy创建numpy中的数组,这里再重复一下: import numpy as np # 数组 a = [[1, 2, 3], [4, 5, 6]] prin ...
- numpy的索引-【老鱼学numpy】
简单的索引值 import numpy as np a = np.arange(3, 15).reshape(3, 4) print("a=") print(a) print(&q ...
- numpy array分割-【老鱼学numpy】
有合并,就有分割. 本节主要讲述如何通过numpy对数组进行横向/纵向分割. 横向/纵向分割数组 首先创建一个6行4列的数组,然后我们对此数组按照横向进行切割,分成3块,这样每块应该有2行,见例子: ...
随机推荐
- 爬虫之Scrapy框架介绍
Scrapy介绍 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内 ...
- [SCOI2006] 数字立方体
题目类型:三维前缀和+同余方程 传送门:>Here< 题意:给出一个立方体,求有多少个子立方体的和为\(k\)的倍数 解题思路 暴力做法:\(O(n^6)\)枚举子立方体 考虑只枚举长和宽 ...
- 【UOJ295】【ZJOI2017】线段树 倍增
题目大意 http://uoj.ac/problem/295 题解 考虑像 zkw 线段树一样,从 \([l-1,l-1],[r+1,r+1]\) 这两个区间开始往上跳,直到两个指针碰到一起为止. 先 ...
- 10.2 Vue 环境安装
Vue 环境安装 环境准备 nodejs 下载安装 https://nodejs.org/en/ 查看下载版本 C:\>node -v v7.6.0 C:\>npm -v 4.1.2 ...
- Magento CURD
创建数据库表 创建模型-CRUD模型Model是MVC架构的一条巨大路径.在Magento 2 CRUD中,模型具有许多不同的功能,例如管理数据,安装或升级模块.在本教程中,我只讨论数据管理CRUD. ...
- Linux内核参数
vm.overcommit_memory 0 - 表示内核将检查是否有足够的可用内存供应用进程使用:如果有足够的可用内存,内存申请允许:否则,内存申请失败,并把错误返回给应用进程. 1 - 表示内核允 ...
- Elasticsearch6.5.2 X-pack破解及安装教程
先正常安装 elasticSearch, kibana. 1. 如果是6.5.2版本,可以直接下载jar文件:https://download.csdn.net/download/bigben0123 ...
- c++三种继承方式public,protect,private
C++中的三种继承public,protected,private 三种访问权限 public:可以被任意实体访问 protected:只允许子类及本类的成员函数访问 private:只允许本类的成员 ...
- elk插件以及分词器安装
ElasticSearch-Head 安装配置因为安装 ElasticSearch-Head 需要使用到 npm 包管理器,所以需要我们提前安装好 NodeJS ,安装 NodeJS 的方法可以参考: ...
- [物理学与PDEs]第2章第2节 粘性流体力学方程组 2.4 粘性热传导流体动力学方程组
粘性热传导流体动力学方程组: $$\beex \bea \cfrac{\p \rho}{\p t}+\Div(\rho{\bf u})&=0,\\ \rho \cfrac{\rd {\bf u ...