NumPy学习_02 ndarray基本操作
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基本操作的更多相关文章
- NumPy学习_00 ndarray的创建
1.使用array()函数创建数组 参数可以为:单层或嵌套列表:嵌套元组或元组列表:元组或列表组成的列表 # 导入numpy库 import numpy as np # 由单层列表创建 a = np. ...
- NumPy学习_01 ndarray相关概念
1.NumPy库 NumPy = Numerical Python 是高性能科学计算和数据分析的基础库. pandas库充分借鉴了NumPy的相关概念,先行掌握NumPy库的用法,才能把pandas的 ...
- 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 ...
- 数据分析之Pandas和Numpy学习笔记(持续更新)<1>
pandas and numpy notebook 最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...
- 【大数据技术能力提升_2】numpy学习
numpy学习 标签(空格分隔): numpy python 数据类型 5种类型:布尔值(bool),整数(int),无符号整数(uint).浮点(float).复数(complex) 支持的原始类型 ...
- Python NumPy学习总结
一.NumPy简介 其官网是:http://www.numpy.org/ NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Num ...
- NumPy学习(让数据处理变简单)
NumPy学习(一) NumPy数组创建 NumPy数组属性 NumPy数学算术与算数运算 NumPy数组创建 NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型. 它描述相同 ...
- numpy 学习笔记
numpy 学习笔记 导入 numpy 包 import numpy as np 声明 ndarray 的几种方法 方法一,从list中创建 l = [[1,2,3], [4,5,6], [7,8,9 ...
- numpy 学习总结
numpy 学习总结 作者:csj更新时间:01.09 email:59888745@qq.com 说明:因内容较多,会不断更新 xxx学习总结: 回主目录:2017 年学习记录和总结 #生成数组/使 ...
随机推荐
- 如何实现 C/C++ 与 Python 的通信?
属于混合编程的问题.较全面的介绍一下,不仅限于题主提出的问题.以下讨论中,Python指它的标准实现,即CPython(虽然不是很严格) 本文分4个部分 1. C/C++ 调用 Python (基础篇 ...
- 通过Loadruner对mysql数据库进行增删改查
操作mysql数据库,是在实现mysql数据源配置的基础上操作,可先阅读:loadrunner参数化使用mysql数据源失败解决方法 写之前先理一下,数据库访问流程:打开数据库 --> 数据库 ...
- Channels实现扫码登录
参考了下别人说的原理,根据自己的逻辑实现,没有完全按照别人的原理来,所以不一定适用于大家,仅供参考吧!!! 流程如下: 1. web发起websocket链接,后端接受链接后立马发送第一次消息,为全局 ...
- C++中#include<iostream>
#include 是个包含命令,就是把iostream.h这个文件里的内容复制到这个地方 iostream.h是input output stream的简写,意思为标准的输入输出流头文件.它包含: ( ...
- 关于SQLserver2008索引超出了数据
由于公司只支持了2008.不支持2012的数据库.所以安装的2008.但在对表进行操作的时候出现如下异常: 这个问题是由于本地装的2008,但IT那边的测试机上面确装的2012.所以2008连接了20 ...
- json与csv的基础用与法
json库是处理json格式的python标准库 有两个过程: 编码(encoding):将python数据类型转换为json格式的过程 解码(decoding):从json格式中解析数据得到的pyt ...
- Word2vec教程
Word2vec Tutorial RADIM ŘEHŮŘEK 2014-02-02GENSIM, PROGRAMMING157 COMMENTS I never got round to writi ...
- Linux chattr和lsattr命令使用方法
你是否遇到过文件或目录具有可读写权限,但是使用root用户删除.修改时提示"Operation not permitted"的情况.可能是由于chattr设置了文件的隐藏保护权限导 ...
- 2017-11-11 Sa Oct Is it online
2017-11-11 Sa Oct Is it online 9:07 AM After breakfast I tried connecting to the course selection sy ...
- ansible自动化
一,工具与环境介绍 1.1 ansible简介 批量管理服务器的工具 无需部署agent,通过ssh进行管理 流行的自动化运维工具:https://github.com/ansible/ansib ...