NumPy 教程 之 Numpy 数组操作 5

简介: 这段 NumPy 教程介绍了 Numpy 数组操作的第五部分,涵盖了数组形状的修改、翻转等技巧。通过 `reshape` 可以调整数组结构而不改变数据;`flat` 提供了迭代数组元素的方法;`flatten` 和 `ravel` 则分别用于创建一维数组的拷贝和视图,后者直接关联原数组。示例展示了 `ravel` 如何按不同顺序展平数组。此外,教程还介绍了如何使用 `transpose`, `ndarray.T`, `rollaxis`, 和 `swapaxes` 等方法来翻转和重新排列数组的维度。

NumPy 教程 之 Numpy 数组操作 5

Numpy 数组操作

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

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

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

numpy.ravel

numpy.ravel() 展平的数组元素,顺序通常是"C风格",返回的是数组视图(view,有点类似 C/C++引用reference的意味),修改会影响原始数组。

该函数接收两个参数:

numpy.ravel(a, order='C')

参数说明:

order:'C' -- 按行,'F' -- 按列,'A' -- 原顺序,'K' -- 元素在内存中的出现顺序。

实例

import numpy as np

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

print ('原数组:')
print (a)
print ('\n')

print ('调用 ravel 函数之后:')
print (a.ravel())
print ('\n')

print ('以 F 风格顺序调用 ravel 函数之后:')
print (a.ravel(order = 'F'))

输出结果如下:

原数组:
[[0 1 2 3]
[4 5 6 7]]

调用 ravel 函数之后:
[0 1 2 3 4 5 6 7]

以 F 风格顺序调用 ravel 函数之后:
[0 4 1 5 2 6 3 7]

翻转数组

函数 描述
transpose 对换数组的维度
ndarray.T 和 self.transpose() 相同
rollaxis 向后滚动指定的轴
swapaxes 对换数组的两个轴

目录
相关文章
|
Linux 应用服务中间件 nginx
【PUSDN】centos查看日志文件内容,包含某个关键字的前后5行日志内容,centos查看日志的几种方法
【PUSDN】centos查看日志文件内容,包含某个关键字的前后5行日志内容,centos查看日志的几种方法
537 0
|
5月前
|
算法 搜索推荐 Java
collections.shuffle
`Collections.shuffle()` 是 Java 中用于随机打乱列表顺序的静态方法,基于 Fisher-Yates 算法实现,支持使用默认或自定义随机数生成器,适用于抽奖、游戏、随机抽样等场景,且会直接修改原列表。
188 0
|
2月前
|
CDN
如何切换阿里云CDN的加速区域?
本文介绍如何通过阿里云CDN控制台切换加速区域,涵盖登录、域名管理、修改加速范围及注意事项,助企业轻松实现从中国大陆到全球的CDN加速调整,优化海外用户访问体验。
putty配色方案
putty默认的配色方案简直毫无人道主义可言,所以找了个,好多了,转载自https://darekkay.com/2015/03/21/my-putty-color-scheme/ 预览效果 ; Default Fo...
3647 0
|
存储 Kubernetes API
上篇:一文了解K8S的ConfigMap
上篇:一文了解K8S的ConfigMap
773 0
|
监控 算法 安全
以unity3d为例解读:游戏数据加密
以unity3d为例解读:游戏数据加密
996 1
以unity3d为例解读:游戏数据加密
|
缓存 Java fastjson
编码 5 分钟,命名 2 小时?Java 开发都需要参考的一份命名规范!
简洁清爽的代码风格应该是大多数工程师所期待的。在工作中笔者常常因为起名字而纠结,命名已经成为我工作中的拦路虎,夸张点可以说是编程5分钟,命名两小时!
编码 5 分钟,命名 2 小时?Java 开发都需要参考的一份命名规范!
|
Linux 测试技术 Serverless
Linux Command stress 进程压力测试工具
Linux Command stress 进程压力测试工具
|
移动开发 Dart 前端开发
Web前端工程师Flutter快速入门,大佬勿入!
本篇文章中将结合一些我曾经文章里的内容,整合为一篇面向Web前端工程师的Flutter入门教程。
622 0
Web前端工程师Flutter快速入门,大佬勿入!