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 ...
随机推荐
- C++ 将数据转为字符串的几种方法
收集一下: 1\将int 转为 LPCTSTR 其实LPCTSTR可以直接使用CString直接代替,无需类型强制转换 CString str; ; //str="15" str. ...
- windows安装AnyProxy 配合夜神模拟器抓包
AnyProxy是阿里巴巴基于 Node.js 开发的一款开源代理服务器.做为中间代理服务器,它可以收集所有经过它的http请求流量(包括https明文内容):它提供了友好的web界面,便于直观的查看 ...
- idea 这样 会快点
最近使用IDEA来开发JAVA应用,对IDEA的界面很有爱,但是缺受不了它的运行速度.每次运行都要编译,所以就有了这边文章 总感觉IDEA的编译速度比eclipse慢,eclipse每次保存都自动 ...
- k8s 调度器
https://blog.csdn.net/qq_21816375/article/details/78209605
- Latex公式示范
\(A_\alpha(x)\) \(\qquad\) \(a^2+b^2=c^2 \) \(\qquad\) \(\sum\limits_{m=0}^\inft ...
- python 自然语言处理库https://www.nltk.org/nltk_data/
https://www.nltk.org/nltk_data/ https://github.com/hankcs/HanLP
- heat创建stack
1.使用模板创建虚拟机 heat_template_version: 2018-09-04 description: Simple template to deploy a virtual machi ...
- 《java与模式》阅读笔记01
这次我读了前两章的内容,就如书名所言,这本书主要将的就是java中的模式,在书中的序言就把所有的模式都介绍了一下,主要有, 1.创建模式:简单工厂模式,工厂方法模式,抽象工厂模式,建造模式 2.行为模 ...
- jenkins动态参数插件Dynamic Parameter安装及简单使用
插件安装: 1.先下载插件hpi文件到本地 jenkins插件下载地址 http://mirror.xmission.com/jenkins/plugins/ http://updates.jen ...
- Oracle的regexp_instr函数简单用法
REGEXP_INSTR函数让你搜索一个正则表达式模式字符串.函数使用输入字符集定义的字符进行字符串的计算. 它返回一个整数,指示开始或结束匹配的子位置,这取决于return_option参数的值. ...