目录
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 改变数组的维度
转载:https://blog.csdn.net/nokiaguy/article/details/115689176
查看评论