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 数组的索引和分片操作
处理数组的一项重要工作就是改变数组的维度,包括提高数组的维度和降低数组的维度,还包括数组的转置。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 改变数组的维度
本文转载自微信公众号「极客起源」,可以通过以下二维码关注。转载本文请联系极客起源公众号。
由于一些行业的网站访问者主要在国外和免备案等原因,使得很多用户喜欢租用 国外...
在互联网这个大染缸中,充斥着各种非法行为,比如说网络攻击,其中又以流量攻击...
在中国的高防服务器租赁类型中,能够分成中国高防服务器和海外高防服务器两类,...
为了打下更积极主动的基础,有些组织一直在采用威胁情报,这是一种安全实践,它...
您租用的香港服务器是否经常掉线,搭建的网站常常打不开,这是什么原因导致的呢...
企业选择错误的人工智能存储平台可能会产生严重影响。因此,人们需要了解可能影...
提到3D打印,或许没有前几年关注度高,但是3D打印技术仍然在时装、医疗、航空航...
2020年是我国5G网络规模建设的关键之年,也是新型基础设施建设(简称新基建)备受...
Ceph是分布式和强一致性的软件定义存储产品,随着越来越多的企业和组织不断加入...
每个香港服务器租用服务背后的基本理念是相同的,因此可以参照TOP云(zuntop.com...