Python中的数据操作几乎等同于NumPy数组操作,甚至新出现的Pandas工具也是构建在NumPy数组的基础之上的。本节将展示一些用NumPy数组操作获取数据或子数组,对数组进行分裂、变形和连接的例子。
小编的python IDE用的是Rstudio2目录
数组的属性
确定数组的大小、形状、存储大小、数据类型。
数组的索引
获取和设置数组各个元素的值。
数组的切分
在大的数组中获取或设置更小的子数组。
数组的变形
改变给定数组的形状。
数组的拼接和分裂
将多个数组合并为一个,以及将一个数组分裂成多个。
3Numpy数组的属性
首先介绍一些有用的数组属性。定义三个随机的数组:一个一维数组、一个二维数组和一个三维数组。我们将用NumPy的随机数生成器设置一组种子值,以确保每次程序执行时都可以生成同样的随机数组:
import numpy as np
# 设置随机数种子
np.random.seed(666)
>>> x1 = np.random.randint(10, size = 6) # 一维数组
>>> x2 = np.random.randint(10, size = (3, 4)) # 二维数组
>>> x3 = np.random.randint(10, size = (3, 4, 5)) # 三维数组
>>> x1
array([6, 8, 5, 8, 5, 1])
>>> x2
array([[4, 8, 4, 3],
[5, 4, 0, 0],
[4, 6, 7, 8]])
>>> x3
array([[[9, 2, 8, 1, 0],
[8, 9, 2, 6, 9],
[5, 9, 7, 2, 4],
[2, 0, 4, 1, 0]],
[[2, 0, 1, 6, 9],
[8, 8, 0, 9, 4],
[3, 9, 2, 2, 3],
[7, 9, 1, 1, 8]],
[[8, 1, 6, 6, 9],
[5, 6, 9, 4, 5],
[0, 3, 0, 9, 3],
[6, 7, 8, 1, 9]]])
每个数组有 nidm(数组的维度)、shape(数组每个维度的大小)和 size(数组的总大小)属性:
>>> print("x3.ndim:", x3.ndim)
x3.ndim: 3
>>> print("x3.shape:", x3.shape)
x3.shape: (3, 4, 5)
>>> print("x3.size:", x3.size)
x3.size: 60
另外一个有用的属性是 dtype,它是数组的数据类型
>>> print("x3 dtype:", x3.dtype)
x3 dtype: int32
4数组索引:获取单个元素
如果你熟悉 Python 的标准列表索引,那么你对 NumPy 的索引方式也不会陌生。和 Python 列表一样,在一维数组中,你也可以通过中括号指定索引获取第 i 个值(从 0 开始计数):
>>> x1
array([6, 8, 5, 8, 5, 1])
>>> x1[0]
6
>>> x1[4]
5
为了获取数组的末尾索引,可以用负值索引:
>>> x1[-1]
1
>>> x1[-2]
5
在多维数组中,可以用逗号分隔的索引获取元素:
>>> x2
array([[4, 8, 4, 3],
[5, 4, 0, 0],
[4, 6, 7, 8]])
>>> x2[0,0]
4
>>> x2[2,0]
4
>>> x2[2,-1]
8
也可以用以上索引方式修改元素值:
>>> x2[0,0] = 12
>>> x2
array([[12, 8, 4, 3],
[ 5, 4, 0, 0],
[ 4, 6, 7, 8]])
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/11172/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
查 看2022高级编程视频教程免费获取