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 基础运算的更多相关文章

  1. Numpy 基础运算2

    # -*- encoding:utf-8 -*- # Copyright (c) 2015 Shiye Inc. # All rights reserved. # # Author: ldq < ...

  2. Numpy 基础运算1

    # -*- encoding:utf-8 -*- # Copyright (c) 2015 Shiye Inc. # All rights reserved. # # Author: ldq < ...

  3. numpy的基础运算2-【老鱼学numpy】

    numpy的基础运算中还有很多运算,我们这里再记录一些. 最小/大值索引 前面一篇博文中我们讲述过如何获得数组中的最小值,这里我们获得最小/大值的索引值,也就是这个最小/大值在整个数组中位于第几位. ...

  4. 利用Python进行数据分析(5) NumPy基础: ndarray索引和切片

    概念理解 索引即通过一个无符号整数值获取数组里的值. 切片即对数组里某个片段的描述. 一维数组 一维数组的索引 一维数组的索引和Python列表的功能类似: 一维数组的切片 一维数组的切片语法格式为a ...

  5. 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算

    http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...

  6. 利用Python进行数据分析——Numpy基础:数组和矢量计算

    利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...

  7. numpy 基础操作

    Numpy 基础操作¶ 以numpy的基本数据例子来学习numpy基本数据处理方法 主要内容有: 创建数组 数组维度转换 数据选区和切片 数组数据计算 随机数 数据合并 数据统计计算 In [1]: ...

  8. Numpy 基础

    Numpy 基础 参考https://www.jianshu.com/p/83c8ef18a1e8 import numpy as np 简单创建数组 # 创建简单列表 a = [1, 2, 3, 4 ...

  9. [转]python与numpy基础

    来源于:https://github.com/HanXiaoyang/python-and-numpy-tutorial/blob/master/python-numpy-tutorial.ipynb ...

随机推荐

  1. Android Debug Bridge命令介绍[转]

    Android Debug Bridge命令介绍 Android Debug Bridge的一些基本命令.这个工具直译过来就是Android调试桥的意思.它提供了强大的特性,例如复制文件到设备或从设备 ...

  2. Navicat远程连接不上mysql解决方案(已测试过)

    内容参考网上的文章,此处只做记录. 一.can‘t connect to MySql server on ‘192.168.X.X’ 这是因为mysql端口被防火墙拦截,需用linux执行如下指令:( ...

  3. Xshell 连接ubuntu虚拟机失败解决办法

    当我们在VMWare上安装好Ubuntu虚拟机后,有时候会需要使用多个terminal窗口,但是在虚拟机中多个窗口互相切换查看不方便,这时候用物理机的xshell工具连接到虚拟机中去就显得很方便.直接 ...

  4. Fixation index

    :或者1.简单介绍 固定指数(FST)是一种由遗传结构决定的种群分化指标.它通常是由遗传多态性数据,如单核苷酸多态性(SNP)或微卫星估计.作为莱特f统计的一个特例,它是种群遗传学中最常用的统计方法之 ...

  5. Oracle常用查看表结构命令(转)

    转自:http://www.cnblogs.com/qingsong-do/archive/2011/11/29/2267244.html 获取表: select table_name from us ...

  6. Android开发之getX,getRawX,getWidth,getTranslationX等的区别

    转载请注明出处:http://blog.csdn.net/dmk877/article/details/51550031      好久没写博客了,最近工作确实挺忙的,刚刚结束了一个TV项目的开发,对 ...

  7. idea插件推荐

    CodeGlance 类似SublimeText的Mini Map插件  Background Image Plus 这又是一款装备B插件了,想想别人看到你的IDE有个美女或者异次元背景是怎样的,安装 ...

  8. Python之逻辑回归模型来预测

    建立一个逻辑回归模型来预测一个学生是否被录取. import numpy as np import pandas as pd import matplotlib.pyplot as plt impor ...

  9. Java字符串String详解

    1.String字符串 实例化String对象: (1)直接赋值,如:String str="hello"; (2)使用关键字 new,如:String str=new Strin ...

  10. mycat配置实现mysql读写分离

    需要先把mysql的主从复制配置好,然后才可以开始mycat的配置 m ysql主从复制配置:https://www.cnblogs.com/renjianjun/p/9093062.html myc ...