Numpy 基础运算
numpy的几种运算
1、一维矩阵运算
>>> import numpy as np
>>> a=np.array([10,20,30,40]) # array([10, 20, 30, 40])
>>> b=np.arange(4) # array([0, 1, 2, 3])
>>> c=a-b #两个矩阵的减法
>>> print(c)
[10 19 28 37]
>>> c=a+b #加法
>>> print(c)
[10 21 32 43]
>>> c=a*b #乘法
>>> print(c)
[ 0 20 60 120]
>>> c=b**2 #矩阵的二次方
>>> print(c)
[0 1 4 9]
>>> c=10*np.sin(a) #三角函数,对矩阵中每一项元素进行函数运算
>>> print(c)
[-5.44021111 9.12945251 -9.88031624 7.4511316 ]
>>> print(b<3) #逻辑判断,返回的是一个bool类型的矩阵,即对满足要求的返回True,不满足的返回False。 用"=="表示相等,而不是"="
[ True True True False]
2、多行多维矩阵运算
#多行多维矩阵运算
>>> a=np.array([[1,1],[0,1]])
>>> b=np.arange(4).reshape((2,2))
>>> print(a)
[[1 1]
[0 1]]
>>> print(b)
[[0 1]
[2 3]] >>> c_dot = np.dot(a,b) #标准的矩阵乘法运算,即对应行乘对应列得到相应元素:
>>> print(c_dot)
[[2 4]
[2 3]] >>> c_dot_2 = a.dot(b)#另外的一种关于dot的表示方法
>>> print(c_dot_2)
[[2 4]
[2 3]]
3、sum()、min()、max()的使用
>>> import numpy as np
>>> a=np.random.random((2,4))#随机生成数字,每一元素均是来自从0到1的随机数
>>> print(a)
[[0.44709296 0.39365818 0.8059794 0.12903175]
[0.9441432 0.58932822 0.69222956 0.94534534]] >>> np.sum(a)
4.946808608663762
>>> np.min(a)
0.129031749915261
>>> np.max(a)
0.9453453374741386 >>> print("a =",a)
a = [[0.44709296 0.39365818 0.8059794 0.12903175]
[0.9441432 0.58932822 0.69222956 0.94534534]]
>>> print("sum =",np.sum(a,axis=1))# 当axis的值为0的时候,将会以列作为查找单元, 当axis的值为1的时候,将会以行作为查找单元。
sum = [1.77576229 3.17104632]
>>> print("min =",np.min(a,axis=0))
min = [0.44709296 0.39365818 0.69222956 0.12903175]
>>> print("max =",np.max(a,axis=1))
max = [0.8059794 0.94534534]
4、对应元素的索引
>>> import numpy as np
>>> A = np.arange(2,14).reshape((3,4))
>>> print(np.argmin(A))#argmin() 求矩阵中最小元素的索引
0
>>> print(np.argmax(A))#argmax() 求矩阵中最大元素的索引
11 >>> print(np.mean(A))#将整个矩阵的均值求出来
7.5
>>> print(np.average(A))
7.5
>>> print(A.mean())#另一种求均值的写法
7.5 >>> print(np.median(A))#求中位数
7.5 >>> print(np.cumsum(A))#累加,生成的每一项矩阵元素均是从原矩阵首项累加到对应项的元素之和
[ 2 5 9 14 20 27 35 44 54 65 77 90] >>> print(np.diff(A))#累差运算,计算每一行中后一项与前一项之差。故一个3行4列矩阵通过函数计算得到的矩阵便是3行3列的矩阵。
[[1 1 1]
[1 1 1]
[1 1 1]]
5、nonzero()函数
这个函数将所有非零元素的行与列坐标分割开,重构成两个分别关于行和列的矩阵。
>>> print(np.nonzero(A))
(array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64))
6、clip()函数
这个函数的格式是clip(Array,Array_min,Array_max),顾名思义,Array指的是将要被执行用的矩阵,而后面的最小值最大值则用于让函数判断矩阵中元素是否有比最小值小的或者比最大值大的元素,并将这些指定的元素转换为最小值或者最大值。
>>> print(A)
[[14 13 12 11]
[10 9 8 7]
[ 6 5 4 3]]
>>> print(np.clip(A,5,9))
[[9 9 9 9]
[9 9 8 7]
[6 5 5 5]]
7、排序、转置
>>> import numpy as np
>>> A = np.arange(14,2, -1).reshape((3,4))
>>> print(np.sort(A))#从小到大排序
[[11 12 13 14]
[ 7 8 9 10]
[ 3 4 5 6]] >>> print(np.transpose(A))#两种转置方法
[[14 10 6]
[13 9 5]
[12 8 4]
[11 7 3]]
>>> print(A.T)
[[14 10 6]
[13 9 5]
[12 8 4]
[11 7 3]]
Numpy 基础运算的更多相关文章
- Numpy 基础运算2
# -*- encoding:utf-8 -*- # Copyright (c) 2015 Shiye Inc. # All rights reserved. # # Author: ldq < ...
- Numpy 基础运算1
# -*- encoding:utf-8 -*- # Copyright (c) 2015 Shiye Inc. # All rights reserved. # # Author: ldq < ...
- numpy的基础运算2-【老鱼学numpy】
numpy的基础运算中还有很多运算,我们这里再记录一些. 最小/大值索引 前面一篇博文中我们讲述过如何获得数组中的最小值,这里我们获得最小/大值的索引值,也就是这个最小/大值在整个数组中位于第几位. ...
- 利用Python进行数据分析(5) NumPy基础: ndarray索引和切片
概念理解 索引即通过一个无符号整数值获取数组里的值. 切片即对数组里某个片段的描述. 一维数组 一维数组的索引 一维数组的索引和Python列表的功能类似: 一维数组的切片 一维数组的切片语法格式为a ...
- 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算
http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...
- 利用Python进行数据分析——Numpy基础:数组和矢量计算
利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...
- numpy 基础操作
Numpy 基础操作¶ 以numpy的基本数据例子来学习numpy基本数据处理方法 主要内容有: 创建数组 数组维度转换 数据选区和切片 数组数据计算 随机数 数据合并 数据统计计算 In [1]: ...
- Numpy 基础
Numpy 基础 参考https://www.jianshu.com/p/83c8ef18a1e8 import numpy as np 简单创建数组 # 创建简单列表 a = [1, 2, 3, 4 ...
- [转]python与numpy基础
来源于:https://github.com/HanXiaoyang/python-and-numpy-tutorial/blob/master/python-numpy-tutorial.ipynb ...
随机推荐
- 配置 SQL Server 2008 Email 发送以及 Job 的 Notification通知功能
SQL Server 2008配置邮件的过程就不写了,网上的案例太多了. http://www.cnblogs.com/woodytu/p/5154526.html 这个案例就不错. 主要写下配置完后 ...
- .Net中使用ODP.net访问Oracle数据库
ODP.Net是Oracle提供的数据库访问类库,其功能和效率上都有所保证,它还有一个非常方便特性:在客户端上,可以不用安装Oracle客户端,直接拷贝即可使用. .net framework4中会将 ...
- C#整数的三种强制类型转换int、Convert.ToInt32()、int.Parse()的区别
.int适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型): .int.Parse(string sParameter)是个构造函数,参数类型只支持string类型: .Con ...
- 吴裕雄 oracle 存储过程
- Python基础学习Day6 is id == 区别,代码块,小数据池 ---->>编码
一.代码块 Python程序是由代码块构造的.块是一个python程序的文本,他是作为一个单元执行的. 代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块. 而作为交互方式输入的每个命令都是 ...
- ASP.NET 简介
简介:ASP.NET - 制作网站应用程序的技术1. WebForm 2. MVC 什么东西? winform 界面 - 后台 - 数据库 共同组合出来的程序:ASP.NET 界面(HTML+CS ...
- lcd 控制器
1. 使用lcd 一般需要一个控制器和驱动器,控制器需要初始化以产生正确的时序,驱动器一般是和lcd基板制作在一起. LCD 控制器结构图: REGBANK 表示调色板 LCDDMA 表示DMA通道 ...
- php mysql 查询判断周几
$where .= " and (DAYOFWEEK( from_unixtime(`px_time`, '%Y-%m-%d')) = 1)"; //周日从1开始
- linux centos 基本命令
init 3 进入命令行界面. init 5 进入图形界面. ifconfig 查询IP地址. nmtui 设置网卡. su - root 是切换到root账号使用,使用的是root用户的环境变量:s ...
- js中switch/case分支的值可以是变量或表达式
在一些高级语言如C#中,switch分支的值只能是常量,而js中可以是变量或表达式: <!DOCTYPE html> <html lang="en"> &l ...