1.算术运算符

它们只用于位置相同的元素之间,即为元素级的运算。
所得到的运算结果组成一个新的数组。
不用编写循环即可对数据执行批量运算。(矢量化)

import numpy as np

# 创建一个数组
a = np.arange(4)
print('数组a ', a) # 加上一个标量
print('加标量', a + 4) # 乘以一个标量
print('乘标量', a * 2)
数组a  [0 1 2 3]
加标量 [4 5 6 7]
乘标量 [0 2 4 6]
b = np.arange(4, 8)
print('数组b ', b) print('a + b ', a + b)
print('a - b ', a - b)
print('a * b ', a * b)
数组b  [4 5 6 7]
a + b [ 4 6 8 10]
a - b [-4 -4 -4 -4]
a * b [ 0 5 12 21]

这些运算符还使用于返回值为NumPy数组的函数。

# 数组a乘以数组b的正弦值
print(a * np.sin(b)) print('-------------------------------------------------') # 数组a乘以数组b的平方根
print(a * np.sqrt(b))
[-0.         -0.95892427 -0.558831    1.9709598 ]
-------------------------------------------------
[0. 2.23606798 4.89897949 7.93725393]

对于多维数组,这些运算符仍然是元素级的。

A = np.arange(0, 9).reshape(3,3)
print('数组A:')
print(A) B = np.ones((3, 3))
B[1][1] = 2.5
print('数组B:')
print(B) print('A*B:')
print(A*B)
数组A:
[[0 1 2]
[3 4 5]
[6 7 8]]
数组B:
[[1. 1. 1. ]
[1. 2.5 1. ]
[1. 1. 1. ]]
A*B:
[[ 0. 1. 2.]
[ 3. 10. 5.]
[ 6. 7. 8.]]

2.矩阵积(mastrix produet)

NumPy用dot()函数表示这类乘法,该运算不是元素级的。
所得到的数组中每个元素为,第一个矩阵中与该元素行号相同的元素与第二个矩阵中与该元素列号相同的元素,两两相乘后再求和
设A为m x n的矩阵,B为p x n的矩阵,则dot(A,B)为m x n的矩阵。
假设dot(A, B)得到数组C,则C中的第1行第1列的元素为 3 x 1.0 + 4 x 2.5 + 5 x 1.0 = 18.0
矩阵计算不遵循交换律。即dot(A,B)不等于dot(B,A)

C = np.dot(A, B)
# 另一种写法 C = A.dot(B)
print('dot(A,B)结果:')
print(C) C1 = np.dot(B,A)
print('dot(B,A)结果:')
print(C1)
dot(A,B)结果:
[[ 3. 4.5 3. ]
[12. 18. 12. ]
[21. 31.5 21. ]]
dot(B,A)结果:
[[ 9. 12. 15. ]
[13.5 18. 22.5]
[ 9. 12. 15. ]]

3.自增和自减运算符

运算结果不是赋给一个新数组。
当想修改数组的值而不想生成新数组时可以使用它们。

a = np.arange(4)
print('原数组', a) a += 1
print('自加1 ', a) a -= 3
print('自减3 ', a)
原数组 [0 1 2 3]
自加1 [1 2 3 4]
自减3 [-2 -1 0 1]

4.通用函数(ufunc = universal function)

它对数组中的各个元素逐一进行操作。
通用函数分别处理输入数组的每个元素,生成的结果组成一个新的输出数组。
三角函数等很多数学运算符符合通用函数的定义。

a = np.array([0, 1, 2, 3, 4])
print(np.sqrt(a)) # 计算平方根
[0.         1.         1.41421356 1.73205081 2.        ]

5.聚合函数

聚合函数是指对一组值(如数组)进行操作,返回一个单一值作为结果的函数。

a = np.array([3.3, 4.5, 1.2, 5.7, 0.3])
print('总和: ', a.sum())
print('最小值:', a.min())
print('最大值:', a.max())
print('平均值:', a.mean())
print('标准差:', a.std())
总和:   15.0
最小值: 0.3
最大值: 5.7
平均值: 3.0
标准差: 2.0079840636817816

NumPy学习_02 ndarray基本操作的更多相关文章

  1. NumPy学习_00 ndarray的创建

    1.使用array()函数创建数组 参数可以为:单层或嵌套列表:嵌套元组或元组列表:元组或列表组成的列表 # 导入numpy库 import numpy as np # 由单层列表创建 a = np. ...

  2. NumPy学习_01 ndarray相关概念

    1.NumPy库 NumPy = Numerical Python 是高性能科学计算和数据分析的基础库. pandas库充分借鉴了NumPy的相关概念,先行掌握NumPy库的用法,才能把pandas的 ...

  3. Python数据分析:Numpy学习笔记

    Numpy学习笔记 ndarray多维数组 创建 import numpy as np np.array([1,2,3,4]) np.array([1,2,3,4,],[5,6,7,8]) np.ze ...

  4. 数据分析之Pandas和Numpy学习笔记(持续更新)<1>

    pandas and numpy notebook        最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...

  5. 【大数据技术能力提升_2】numpy学习

    numpy学习 标签(空格分隔): numpy python 数据类型 5种类型:布尔值(bool),整数(int),无符号整数(uint).浮点(float).复数(complex) 支持的原始类型 ...

  6. Python NumPy学习总结

    一.NumPy简介 其官网是:http://www.numpy.org/ NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Num ...

  7. NumPy学习(让数据处理变简单)

    NumPy学习(一) NumPy数组创建 NumPy数组属性 NumPy数学算术与算数运算 NumPy数组创建 NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型. 它描述相同 ...

  8. numpy 学习笔记

    numpy 学习笔记 导入 numpy 包 import numpy as np 声明 ndarray 的几种方法 方法一,从list中创建 l = [[1,2,3], [4,5,6], [7,8,9 ...

  9. numpy 学习总结

    numpy 学习总结 作者:csj更新时间:01.09 email:59888745@qq.com 说明:因内容较多,会不断更新 xxx学习总结: 回主目录:2017 年学习记录和总结 #生成数组/使 ...

随机推荐

  1. IDE 热部署配置

    从eclipse切换到IDE,遇到应用不能热部署问题,解决如下 1.tomcat 中server配置下面三点需要注意 2.tomcat的deployment 中 需要选择war exploded而不是 ...

  2. Eclipse配置“运行时依赖路径”

    Python项目 本地有项目A,项目B,项目A,依赖项目B,在eclipse中,将项目B的路径添加到项目A的PYTHONPATH中. Java项目Build path(略)

  3. python3下同时取得exe、zip和chm下载地址

    from selenium import webdriverimport osimport timeimport re cur_path=os.getcwd() #得到程序的当前目录str_file= ...

  4. 《深入理解java虚拟机》读书笔记——垃圾收集与内存分配策略

    可回收判定两种算法 引用计数法(Reference Counting):引用为0时可回收. 可达性分析法(Reachability Analysis): 从GCRoots对象到这个对象不可达. GCR ...

  5. nodeJs 代码热更新

    在开发node过程中,每次修改代码都需要重新启动服务,是一件很抓狂的事情 使用nodemon热加载可以帮我们很好的解决这一问题 1. 安装 npm install nodemon -g 2. 修改np ...

  6. [转]再识Cortex-M3之堆栈

    原地址https://blog.csdn.net/liaoxu02/article/details/48107651 Cortex-M3拥有通用寄存器R0-R15以及一些特殊功能寄存器.R0-R12是 ...

  7. Chrome 插件PPAPI 开发(一)环境搭建

    前言:本文参考了其他已有的文章,在其基础上简化了一些没有必要的操作. 同时也记录一下chrome 插件ppapi环境的基础搭建.并且感谢已有文章作者的大无畏的分享精神! 在这附上参考文章链接:http ...

  8. Matplotlib-多图合并显示

    Subplot 多合一显示 均匀图中图 不均匀图中图 # 均匀图中图 # matplotlib 是可以组合许多的小图, 放在一张大图里面显示的. 使用到的方法叫作 subplot. # 使用impor ...

  9. 每日一练之大整数加法(P1255 数楼梯)

    走楼梯走一步还是两步的问题其实就是斐波那契数列(F(n)=F(n-1)+F(n-2),而在int型范围内存在45个相异的数,题干说明楼梯总数可以为5000,则考虑使用字符串进行存储.当两个数相加产生进 ...

  10. Iview Modal 点击确定就关闭,我想禁止关闭该怎么办呢?

    网上各种loading,不推荐.用下面的方法直接就解决了 <div slot="footer"> <Button type="text" si ...