内容简介: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/深度学习/机器学习面试笔记
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Google将带来什么?
杰夫·贾维斯 / 陈庆新、赵艳峰、胡延平 / 中华工商联合出版社 / 2009-8 / 39.00元
《Google将带来什么?》是一本大胆探索、至关重要的书籍,追寻当今世界最紧迫问题的答案:Google将带来什么?在兼具预言、宣言、思想探险和生存手册性质的这样一《Google将带来什么?》里,互联网监督和博客先锋杰夫·贾维斯对Google这个历史上发展速度最快的公司进行了逆向工程研究,发现了40种直截了当、清晰易懂的管理与生存原则。与此同时,他还向我们阐明了互联网一代的新世界观:尽管它具有挑战性......一起来看看 《Google将带来什么?》 这本书的介绍吧!