【Python深度学习前传】用NumPy获取数组的值、分片以及改变数组的维度

目录

 

1.  获取数组值和数组的分片

2. 改变数组的维度


1.  获取数组值和数组的分片

NumPy数组也指出与Python列表相同的操作,例如,通过索引获得数组值,分片等。
 

下面的例子演示了如何通过索引获得NumPy数组的值,以及对NumPy数组使用分片操作。
 

from numpy import *
# 定义一个二维的NumPy数组
a = array([[1,2,3],[4,5,6],[7,8,9]])
# 输出数组a的第1行第1列的值,运行结果:1
print(a[0,0])
# 运行结果:a[0,1] = 2, a[2,1] = 8
print("a[0,1] = {}, a[2,1] = {}".format(a[0,1],a[2,1]))
# 分片操作,将3*3的二维数组变成1*3的二维数组,运行结果:[[1 2 3]]
print(a[0:1])
# 分片操作,获取1*3的二维数组的第1行的值,运行结果:[1 2 3]
print(a[0:1][0])
# 分片操作,将3*3二维数组变成2*3的二维数组
print(a[0:2])
b = a[0:]
# 分片操作,b与a的值是相同的
print(a)
# 分片操作,步长是2
print(a[0::2])
# 与a[0:2]的结果相同
print(a[-3:-1])

 程序运行结果如图1所示。

图1  数组的索引和分片操作

2. 改变数组的维度

处理数组的一项重要工作就是改变数组的维度,包括提高数组的维度和降低数组的维度,还包括数组的转置。NumPy提供大量的API可以很轻松地完成这些数组的操作。例如,通过reshape方法可以将一维数组变成二维、三维或者多为数组。通过ravel方法或flatten方法可以将多维数组变成一维数组。改变数组的维度还可以直接设置NumPy数组的shape属性(元组类型),通过resize方法也可以改变数组的维度。通过transpose方法可以对数组进行转置。本节将介绍NumPy中与数组维度相关的常用API的使用方法。

下面的例子演示了如何利用NumPy中的API对数组进行维度操作。

from numpy import *
b = arange(24).reshape(2,3,4)
# 将一维数组变成三维数组
print(b)
print('------------------')
# 将三维数组变成一维数组
b1 = b.ravel()
print(b1)
print('------------------')
# 将三维数组变成一维数组
b2 = b.flatten()
print(b2)
print('------------------')
 # 将三维数组变成二维数组(6行4列)
b.shape = (6,4)
print(b)
print('------------------')
# 数组转置
b3 = b.transpose()
print(b3)
print('------------------')
# 将三维数组变成二维数组(2行12列)
b.resize((2,12))
print(b)

程序运行结果如图2所示。

图2  改变数组的维度

 

蒙娜丽宁 CSDN认证博客专家 公众号:极客起源 达芬奇 UM
更多精彩内容请关注微信公众号:「极客起源」,东北大学计算机专业硕士。UnityMarvel创始人,企业内训讲师、IT畅销书作者,CSDN学院讲师,拥有多年软件开发经验和培训经验。主要著作包括《Python从菜鸟到高手》、《Python爬虫技术:深入理解原理、技术与开发》,培训企业学员数千人。制作在线课程数千小时。更多视频课程,请访问我的B站:https://space.bilibili.com/477001733
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页
实付 49.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值