用NumPy获取数组的值、分片以及改变数组的维度

存储
NumPy提供大量的API可以很轻松地完成这些数组的操作。例如,通过reshape方法可以将一维数组变成二维、三维或者多为数组。

[[392962]]

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.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

程序运行结果如图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) 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.

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

 

图2 改变数组的维度

本文转载自微信公众号「极客起源」,可以通过以下二维码关注。转载本文请联系极客起源公众号。

 

责任编辑:武晓燕 来源: 极客起源
相关推荐

2021-12-17 08:27:55

NumpyPython 机器学习

2021-05-22 09:44:21

PythonNumpy数组Python矩阵

2023-02-08 17:04:14

Python计算库数学函数

2023-01-09 18:15:21

数组Python类型

2015-06-17 13:52:20

数据中心架构SDN

2021-04-19 15:35:13

NumPy组合数组

2025-02-08 13:23:27

JavaScript开发唤醒锁

2022-07-08 10:13:34

数据中心

2017-11-20 05:41:41

数组矩阵NumPy

2022-12-28 11:01:06

数据中心服务器

2023-12-27 12:12:35

NumPy函数数组

2024-04-29 08:50:01

PostgreSQJSON数组

2023-09-04 15:48:23

人工智能AI

2019-09-20 15:25:48

数据中心IT机架

2019-07-16 07:52:49

NumPyPython机器学习

2017-04-14 15:28:27

1-Numpy基础多维数组

2020-02-03 09:13:03

物联网数字营销IOT

2022-10-26 10:15:53

GoFramePHP数组

2012-08-23 09:33:25

数据库数组PostgreSQL

2022-02-22 14:15:42

区块链技术数字业务
点赞
收藏

51CTO技术栈公众号