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 ...
随机推荐
- Docker 指定容量
vim /etc/sysconfig/docker-storage加入以下命令 DOCKER_STORAGE_OPTIONS="--storage-driver devicemapper - ...
- JAVA&PYTHON
- 转载一篇必须超级好的JVM配置实战
不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM.GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java ...
- Real Time Rendering 1
[Real Time Rendering 1] 1.RTR是一本导论.官网:http://www.realtimerendering.com. 2.At around 6 fps, a sense o ...
- MySql数据类型范围
[MySql数据类型范围] 参考:http://blog.sina.com.cn/s/blog_4f925fc30102edg8.html
- Web前端js下载流文件
前端下载文件大概有以下种: 1)a标签链接下载 <a href="url">点击链接下载</a> 2)表单form提交下载 var form = $(&qu ...
- iframe解决ajax主域和子域之间的跨域问题
在某些应用场景下,需要在主域中,调用子域中的某个接口,如果直接在主域中向子域发ajax请求,会报跨域错误,可以用iframe来解决这种跨域问题.假如主域为www.baidu.com,子域为baike. ...
- Appium 连手机失败Error: Android bootstrap socket crashed: Error: getaddrinfo ENOTFOUND localhost undefined:4724
问题:Appium执行,连接手机报下面的错误 Error: Android bootstrap socket crashed: Error: getaddrinfo ENOTFOUND localho ...
- laravel 5.1部署到 集成环境 lnmp上
laravel 5.1 需要配置:php版本 >= 5.5.9 如果php版本不够可以升级 1.切换到安装包目录 # cd /lnmp1.3-full 2.升级php命令 # ./upgrade ...
- 191. Number of 1 Bits (Int; Bit)
Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also know ...