内容简介:Python Numpy学习笔记(二)
Python Numpy学习笔记第二篇。目前,正在学习北京理工大学嵩天老师在中国大学MOOC的课程:Python数据分析与展示。
ndarray数组的操作
索引和切片
索引:获取数组中特定位置元素的过程
切片:获取数组元素子集的过程
- 一维数组的索引和切片
>>> a = np.array([1, 2, 3, 4, 5, 6]) >>> a[2] 3 >>> a[-2] # 从右开始 5 >>> a[1:4] # 起始编号:终止编号(不含):步长 array([2, 3, 4]) >>> a[0:6:2] # 指定步长为2 array([1, 3, 5])
- 多维数组的索引和切片
>>> a = np.array([[1, 2, 3],[4, 5, 6]]) >>> a array([[1, 2, 3], [4, 5, 6]]) >>> a[1, 2] 6 >>> a[-1,-2] # 从右开始 5 # 选取一个维度用:,不同维度用逗号分开 >>> a[:1, 1:] # 每个维度切片方法与一维数组相同 array([[2, 3]])
基本运算
- 一元函数
函数 | 说明 |
---|---|
np.abs(x) np.fabs(x) | 计算数组各元素的绝对值 |
np.sqrt(x) | 计算数组各元素的平方根 |
np.square(x) | 计算数组各元素的平方 |
np.log(x) np.log10(x) np.log2(x) | 计算数组各元素的自然对数、10底对数和2底对数 |
np.ceil(x) np.floor(x) | 计算数组各元素的ceiling值 或 floor值 |
>>> a = np.array([-2, 4, 6]) >>> np.abs(a) array([2, 4, 6]) >>> a array([-2, 4, 6]) >>> np.fabs(a) array([ 2., 4., 6.]) >>> b = np.square(a) >>> b array([ 4, 16, 36]) >>> np.sqrt(b) array([ 2., 4., 6.]) >>> np.log2(b) array([ 2. , 4. , 5.169925]) >>> a = np.array([0.2, 1.5, 2.8]) >>> np.ceil(a) array([ 1., 2., 3.]) >>> np.floor(a) array([ 0., 1., 2.])
函数 | 说明 |
---|---|
np.rint(x) | 计算数组各元素的四舍五入值 |
np.modf(x) | 将数组各元素的小数和整数部分以两个独立数组形式返回 |
np.cos(x) np.cosh(x) | 计算数组各元素的普通型和双曲型三角函数 |
np.sin(x) np.sinh(x) | 计算数组各元素的普通型和双曲型三角函数 |
np.tan(x) np.tanh(x) | 计算数组各元素的普通型和双曲型三角函数 |
np.exp(x) | 计算数组各元素的指数值 |
np.sign(x) | 计算数组各元素的符号值,1(+),0,‐1(‐) |
- 二元函数
函数 | 说明 |
---|---|
+, ‐, , /, * | 两个数组各元素进行对应运算 |
np.maximum(x,y) np.fmax() | 元素级的最大值/最小值计算 |
np.minimum(x,y) np.fmin() | 元素级的最大值/最小值计算 |
np.mod(x,y) | 元素级的模运算 |
np.copysign(x,y) | 将数组y中各元素值的符号赋值给数组x对应元素 |
>, <, >=, <=, ==, != | 算术比较,产生布尔型数组 |
>>> a = np.array([[1, 2, 3],[4, 5, 6]]) >>> b = np.array([[1, 2, 3],[4, 5, 6]]) >>> a + b array([[ 2, 4, 6], [ 8, 10, 12]]) >>> a - b array([[0, 0, 0], [0, 0, 0]]) >>> a * b array([[ 1, 4, 9], [16, 25, 36]]) >>> a / b array([[1, 1, 1], [1, 1, 1]]) >>> a**2 array([[ 1, 4, 9], [16, 25, 36]]) >>> np.maximum(a, b) array([[1, 2, 3], [4, 5, 6]]) >>> np.fmax(a, b) array([[1, 2, 3], [4, 5, 6]]) >>> np.mod(a, b) array([[0, 0, 0], [0, 0, 0]]) >>> a >= b array([[ True, True, True], [ True, True, True]], dtype=bool)
ndarray数组的变换
维度变换
方法 | 说明 |
---|---|
.reshape(shape) | 不改变数组元素,返回一个shape形状的数组,原数组不变 |
.resize(shape) | 与.reshape()功能一致,但修改原数组 |
.swapaxes(ax1,ax2) | 将数组n个维度中两个维度进行调换 |
.flatten() | 对数组进行降维,返回折叠后的一维数组,原数组不变 |
>>> import numpy as np >>> a = np.ones((2,6)) >>> a array([[ 1., 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1., 1.]]) >>> a.reshape((3,4)) array([[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]]) >>> a array([[ 1., 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1., 1.]]) >>> a.resize((3,4)) >>> a array([[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]]) >>> a.flatten() array([ 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.]) >>> a array([[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]])
类型变换
astype()方法一定会创建新的数组(原始数据的一个拷贝),即使两个类型一致。
>>> a = np.ones((2,3), dtype=np.int32) >>> a array([[1, 1, 1], [1, 1, 1]]) >>> a.astype(np.float) array([[ 1., 1., 1.], [ 1., 1., 1.]]) >>> a array([[1, 1, 1], [1, 1, 1]])
转换成列表
tolist()方式可以实现将ndarray数组转换成列表。
>>> a = np.ones((2,3), dtype=np.int32) >>> a array([[1, 1, 1], [1, 1, 1]]) >>> a.tolist() [[1, 1, 1], [1, 1, 1]]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 【每日笔记】【Go学习笔记】2019-01-04 Codis笔记
- 【每日笔记】【Go学习笔记】2019-01-02 Codis笔记
- 【每日笔记】【Go学习笔记】2019-01-07 Codis笔记
- Golang学习笔记-调度器学习
- Vue学习笔记(二)------axios学习
- 算法/NLP/深度学习/机器学习面试笔记
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python学习手册(第4版)
[美] Mark Lutz / 李军、刘红伟 / 机械工业出版社 / 2011-4 / 119.00元
Google和YouTube由于Python的高可适应性、易于维护以及适合于快速开发而采用它。如果你想要编写高质量、高效的并且易于与其他语言和工具集成的代码,《Python学习手册:第4 版》将帮助你使用Python快速实现这一点,不管你是编程新手还是Python初学者。本书是易于掌握和自学的教程,根据作者Python专家Mark Lutz的著名培训课程编写而成。 《Python学习手册:第......一起来看看 《Python学习手册(第4版)》 这本书的介绍吧!