NumPy 教程 之 Numpy 数组操作 8

简介: 本教程介绍NumPy数组操作,涵盖数组形状修改、翻转、维度调整、连接与分割及元素增删。重点讲解`reshape`、`flatten`和`ravel`等函数。通过`rollaxis`示例演示如何将指定轴移动至新位置:如将三维数组的宽度轴移动至深度或高度位置,并展示元素坐标变化。

NumPy 教程 之 Numpy 数组操作 8

Numpy 数组操作

Numpy 中包含了一些函数用于处理数组,大概可分为以下几类:

修改数组形状
翻转数组
修改数组维度
连接数组
分割数组
数组元素的添加与删除

修改数组形状
函数 描述
reshape 不改变数据的条件下修改形状
flat 数组元素迭代器
flatten 返回一份数组拷贝,对拷贝所做的修改不会影响原始数组
ravel 返回展开数组

numpy.rollaxis

numpy.rollaxis 函数向后滚动特定的轴到一个特定位置,格式如下:

numpy.rollaxis(arr, axis, start)

参数说明:

arr:数组
axis:要向后滚动的轴,其它轴的相对位置不会改变
start:默认为零,表示完整的滚动。会滚动到特定位置。

实例

import numpy as np

创建了三维的 ndarray

a = np.arange(8).reshape(2,2,2)

print ('原数组:')
print (a)
print ('获取数组中一个值:')
print(np.where(a==6))
print(a[1,1,0]) # 为 6
print ('\n')

将轴 2 滚动到轴 0(宽度到深度)

print ('调用 rollaxis 函数:')
b = np.rollaxis(a,2,0)
print (b)

查看元素 a[1,1,0],即 6 的坐标,变成 [0, 1, 1]

最后一个 0 移动到最前面

print(np.where(b==6))
print ('\n')

将轴 2 滚动到轴 1:(宽度到高度)

print ('调用 rollaxis 函数:')
c = np.rollaxis(a,2,1)
print (c)

查看元素 a[1,1,0],即 6 的坐标,变成 [1, 0, 1]

最后的 0 和 它前面的 1 对换位置

print(np.where(c==6))
print ('\n')

输出结果如下:

原数组:
[[[0 1]
[2 3]]

[[4 5]
[6 7]]]
获取数组中一个值:
(array([1]), array([1]), array([0]))
6

调用 rollaxis 函数:
[[[0 2]
[4 6]]

[[1 3]
[5 7]]]
(array([0]), array([1]), array([1]))

调用 rollaxis 函数:
[[[0 2]
[1 3]]

[[4 6]
[5 7]]]
(array([1]), array([0]), array([1]))

目录
相关文章
|
1月前
|
索引 Python
NumPy 教程 之 Numpy 数组操作 28
NumPy 提供多种数组操作功能,包括修改形状、翻转、连接和分割等。本教程重点介绍元素的添加与删除,如使用 `resize`、`append`、`insert` 和 `delete` 函数。其中 `numpy.insert` 可在指定索引前插入值,支持标量或数组插入。示例展示了不同情况下 `insert` 的使用方法,包括不指定轴时的数组扁平化插入,以及沿特定轴进行广播插入。
29 2
|
1月前
|
Python
NumPy 教程 之 Numpy 数组操作 20
NumPy 提供了多种数组操作功能,其中包括分割数组。`numpy.split` 可以将数组沿指定轴分为多个子数组。使用格式为 `numpy.split(ary, indices_or_sections, axis)`,其中 `ary` 是待分割的数组,`indices_or_sections` 指定分割方式,`axis` 设定分割方向,默认为 0(水平)。另有 `hsplit` 和 `vsplit` 专门用于水平和垂直分割。
25 4
|
1月前
|
Python
NumPy 教程 之 Numpy 数组操作 26
Numpy教程之数组操作26,介绍如何使用Numpy进行数组元素的添加、删除和调整形状。主要函数包括`resize`、`append`、`insert`、`delete`和`unique`。`resize`用于调整数组大小,若新大小超过原大小,则重复原数组元素以填充新数组。示例中,初始数组`a`被扩展为不同形状的新数组`b`,展示了如何通过`resize`来修改数组的维度和内容。
28 3
|
1月前
|
Python
NumPy 教程 之 Numpy 数组操作 11
本教程介绍Numpy中的数组操作,重点在于修改数组维度的方法,包括广播(`broadcast`)、扩展(`expand_dims`)和压缩(`squeeze`)维度等。通过实例展示了如何使用`numpy.broadcast`模拟广播机制,以及如何手动实现两个数组间的广播相加操作,并得到与Numpy内置广播相同的结果。
37 8
|
1月前
|
Python
NumPy 教程 之 Numpy 数组操作 12
这段 NumPy 教程介绍了数组操作,包括修改形状、翻转、维度调整、连接与分割等。特别聚焦于改变数组维度的功能,如 `broadcast_to` 可以将数组扩展至新的形状,返回一个只读视图,如果形状不符合广播规则,则会引发 `ValueError`。示例展示了如何将一个形状为 `(1,4)` 的数组广播为 `(4,4)` 形状。
35 7
|
1月前
|
Python
NumPy 教程 之 Numpy 数组操作 27
Numpy数组操作教程27,涵盖数组的修改、翻转、连接、分割及元素增删。重点介绍`numpy.append`函数,用于向数组末尾添加元素。参数`arr`为原数组,`values`为待添加值,需与`arr`形状匹配(除添加轴外),`axis`定义添加方向,默认为None时返回一维数组。示例展示了不同轴向的添加效果。
24 1
|
1月前
|
Python
NumPy 教程 之 Numpy 数组操作 24
本教程介绍Numpy中分割数组的方法,特别是`vsplit`函数,它能将数组沿垂直轴分为多个子数组。示例代码展示了如何使用`vsplit`将一个4x4的数组分为两个2x4的子数组,适用于需要按行分割数据的场景。
12 1
|
1月前
|
数据处理 Python
NumPy 教程 之 Numpy 数组操作 23
本教程介绍Numpy数组操作,重点讲解如何使用`numpy.hsplit`函数水平分割数组。通过随机生成一个2x6数组,演示了如何将其均匀分割成三个2x2或2x3的子数组。`numpy.hsplit`允许指定分割后的子数组数量,便于数据处理和分析。
14 1
|
1月前
|
Python
NumPy 教程 之 Numpy 数组操作 19
本教程介绍Numpy数组操作,涵盖数组形状修改、翻转、维度调整、连接与分割以及元素增删等关键技能。重点讲解`numpy.vstack`函数,该函数可将多个数组沿垂直方向堆叠。示例展示了如何使用`vstack`将两个2D数组堆叠成一个更大的数组,适用于数据整合场景。
25 2
|
1月前
|
Python
NumPy 教程 之 Numpy 数组操作 17
NumPy 提供多种数组操作功能,包括修改形状、翻转、调整维度、连接与分割数组及元素的增删。其中,`numpy.stack()`用于沿新轴连接数组序列。示例中,有两个数组`a`和`b`,通过`np.stack((a,b),0)`沿第0轴堆叠,生成的新数组在原有基础上增加了一个维度;而`np.stack((a,b),1)`则沿第1轴堆叠,使得每个数组元素都配对堆叠。
21 1