python3-numpy 数组操作--修改数组形状、翻转数组、修改数组维度、连接数组、分割数组、数组元素的添加与删除

1、修改数组形状

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

1.1 numpy.reshape

numpy.reshape 函数可以在不改变数据的条件下修改形状,格式如下: numpy.reshape(arr, newshape, order=‘C’)

  • arr:要修改形状的数组
  • newshape:整数或者整数数组,新的形状应当兼容原有形状
  • order:‘C’ – 按行,‘F’ – 按列,‘A’ – 原顺序,‘k’ – 元素在内存中的出现顺序。
import numpy as npa = np.arange(8)
print('原始数组 : ')
print(a)  # [0 1 2 3 4 5 6 7]
b = a.reshape(4,2)
print ('修改后的数组:')
print (b)
"""
原始数组 : 
[0 1 2 3 4 5 6 7]
修改后的数组:
[[0 1][2 3][4 5][6 7]]
"""

1.2 numpy.ndarray.flat

numpy.ndarray.flat 是一个数组元素迭代器,实例如下:

a = np.arange(9).reshape(3, 3)
print('原始数组:')
for row in a:print(row)# 对数组中每个元素都进行处理,可以使用flat属性,该属性是一个数组元素迭代器:
print('迭代后的数组:')
for element in a.flat:print(element, end=", ")
"""
原始数组:
[0 1 2]
[3 4 5]
[6 7 8]
迭代后的数组:
0, 1, 2, 3, 4, 5, 6, 7, 8, 
"""

1.3 numpy.ndarray.flatten

numpy.ndarray.flatten 返回一份数组拷贝,对拷贝所做的修改不会影响原始数组,格式如下:
ndarray.flatten(order=‘C’)
参数说明:
order:‘C’ – 按行,‘F’ – 按列,‘A’ – 原顺序,‘K’ – 元素在内存中的出现顺序。

a = np.arange(8).reshape(2, 4)
print('原数组:')
print(a)
print('\n')
# 默认按行
print('展开的数组:')
print(a.flatten())
print('\n')
print('以 F 风格顺序展开的数组:')
print(a.flatten(order='F'))
"""
原数组:
[[0 1 2 3][4 5 6 7]]
展开的数组:
[0 1 2 3 4 5 6 7]
以 F 风格顺序展开的数组:
[0 4 1 5 2 6 3 7]
"""

1.4 numpy.ravel

numpy.ravel() 展平的数组元素,顺序通常是"C风格",返回的是数组视图,修改会影响原始数组
该函数接收两个参数:
numpy.ravel(a, order=‘C’)
参数说明:
order:‘C’ – 按行,‘F’ – 按列,‘A’ – 原顺序,‘K’ – 元素在内存中的出现顺序。

a = np.arange(8).reshape(2, 4)
print('原数组:')
print(a)
print('\n')
print('调用 ravel 函数之后:')
x = a.ravel()
print(x)
print('\n')
x[1] = 100
print(x)
print(a)
"""
原数组:
[[0 1 2 3][4 5 6 7]]调用 ravel 函数之后:
[0 1 2 3 4 5 6 7][  0 100   2   3   4   5   6   7]
[[  0 100   2   3][  4   5   6   7]]
"""

发现一个问题a.ravel(order=‘F’) 时修改数据不会影响原始数据

a = np.arange(8).reshape(2, 4)print('原数组:')
print(a)
print('\n')print('调用 ravel 函数之后:')
x = a.ravel(order = 'F')
print(x)
print('\n')
x[1] = 100
print(x)
print(a)
"""
原数组:
[[0 1 2 3][4 5 6 7]]
调用 ravel 函数之后:
[0 4 1 5 2 6 3 7]
[  0 100   1   5   2   6   3   7]
[[0 1 2 3][4 5 6 7]]
"""

2、翻转数组

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

2.1 numpy.transpose

numpy.transpose 函数用于对换数组的维度,格式如下:
numpy.transpose(arr, axes)
参数说明:
arr:要操作的数组
axes:整数列表,对应维度,通常所有维度都会对换。

a = np.arange(12).reshape(3,4)
print('原数组: ')
print(a)
print('对换数组: ')
print(np.transpose(a))
"""
原数组: 
[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11]]
对换数组: 
[[ 0  4  8][ 1  5  9][ 2  6 10][ 3  7 11]]
"""

2.2 ndarray.T

numpy.ndarray.T 类似 numpy.transpose:

a = np.arange(12).reshape(3, 4)print('原数组:')
print(a)
print('\n')
print('转置数组:')
print(a.T)
"""
原数组:
[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11]]
转置数组:
[[ 0  4  8][ 1  5  9][ 2  6 10][ 3  7 11]]
"""

2.3 numpy.rollaxis

numpy.rollaxis 函数向后滚动特定的轴到一个特定位置,格式如下:
numpy.rollaxis(arr, axis, start)
参数说明:
arr:数组
axis:要向后滚动的轴,其它轴的相对位置不会改变
start:默认为零,表示完整的滚动。会滚动到特定位置。

https://zhuanlan.zhihu.com/p/162874970

2.4 numpy.swapaxes

numpy.swapaxes 函数用于交换数组的两个轴,格式如下:
numpy.swapaxes(arr, axis1, axis2)
arr:输入的数组
axis1:对应第一个轴的整数
axis2:对应第二个轴的整数

https://zhuanlan.zhihu.com/p/162874970

3、修改数组维度

https://www.runoob.com/numpy/numpy-array-manipulation.html

4、 连接数组

https://www.runoob.com/numpy/numpy-array-manipulation.html

5、 分割数组

https://www.runoob.com/numpy/numpy-array-manipulation.html

6、 数组元素的添加与删除

https://www.runoob.com/numpy/numpy-array-manipulation.html

https://www.runoob.com/numpy/numpy-array-manipulation.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/518159.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

十周年再发重磅新品,小米发布50倍潜望式变焦小米10青春版、MIUI 12

2020年4月27日,小米集团旗下小米品牌举办新品发布会,小米10青春版、MIUI12两款重磅新品正式发布,一同亮相的还有小米手表Color X Keith Haring联名版和小米蓝牙耳机Line Free。小米10青春版是一款从「做好年轻人最在乎的基本性能」&#xff0…

揭秘!如何用Flutter设计一个100%准确的埋点框架?

阿里妹导读:用户行为埋点是用来记录用户在操作时的一系列行为,也是业务做判断的核心数据依据,如果缺失或者不准确将会给业务带来不可恢复的损失。闲鱼将业务代码从Native迁移到Flutter上过程中,发现原先Native体系上的埋点方案无法…

安装rzsz

yum install -y lrzsz

编码规范 | Java函数优雅之道(下)

上文背景 本文总结了一套与Java函数相关的编码规则,旨在给广大Java程序员一些编码建议,有助于大家编写出更优雅、更高质、更高效的代码。 内部函数参数尽量使用基础类型 案例一:内部函数参数尽量使用基础类型 现象描述: // 调…

python3-numpy IO load()、save()、savez()、loadtxt()、savetxt()、tofile()、fromfile()

Numpy 可以读写磁盘上的文本数据或二进制数据。 NumPy 为 ndarray 对象引入了一个简单的文件格式:npy。 npy 文件用于存储重建 ndarray 所需的数据、图形、dtype 和其他信息。 常用的 IO 函数有: load() 和 save() 函数是读写文件数组数据的两个主要函数…

抽象思想解读Linux进程描述符

来源 | 嵌入式客栈责编 | Carol头图 | CSDN 下载自视觉中国内核是怎么工作的?首先要理解进程管理,进程调度,本文开始阅读进程管理部分,首先从进程的抽象描述开始。抽象是软件工程的灵魂,而对于Linux操作系统而言&#…

CentOS Linux 7.7 安装kafka zookeeper

文章目录一、软件下载1. zookeeper2. kafka二、安装与启动2.1. jdk2.2. zookeeper2.3. kafka三、 kafka 基本演示一、软件下载 1. zookeeper http://archive.apache.org/dist/zookeeper/zookeeper-3.5.7/apache-zookeeper-3.5.7-bin.tar.gz 2. kafka https://archive.apach…

《Java开发手册》2019最新版发布!

致全球Java开发者: 代码是二进制世界的交流方式,极致的代码是我们的荣耀。 2017年春天,《阿里巴巴Java开发手册》发布,我们希望在涵盖编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程规约、设计规约等7个维度上为开…

IDEA 惊天 bug:进程已结束,退出代码 1073741819

来源 | 沉默王二责编 | Carol头图 | CSDN 下载自视觉中国今天要写的文章中涉及到一串代码,关于 Undertow 的一个入门示例,贴出来大家看一下。public class UndertowTest {public static void main(final String[] args) {Undertow server Undertow.buil…

python3-Anaconda3 基本使用

1、下载 最新版本官网下载: https://www.anaconda.com/distribution/ 历史版本 清华镜像(国内首选): https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 历史版本 官网镜像: https://repo.anaconda.com/archi…

淘宝应用柔性架构的探索

导读:随着淘宝业务的飞速发展,微服务架构在持续演进的过程中,也受到了越来越多的挑战:如同步模型带来的资源利用率有限、依赖调用并发度有限、下游故障引发应用自身出问题;又如静态限流随着业务代码的演进、依赖拓扑的…

js 传递参数中文乱码

换成这种方式接收 function getQueryString(key){var reg new RegExp("(^|&)"key"([^&]*)(&|$)");var result window.location.search.substr(1).match(reg);return result?decodeURIComponent(result[2]):null; }

iOS13 一次Crash定位 - 被释放的NSURL.host

每年一次的iOS升级,都会给开发者带来一些适配工作,一些原本工作正常的代码可能就会发生崩溃。 本文讲到了一种 CoreFoundation 对象的内存管理方式在iOS13上遇到的问题。 1. 问题 iOS 13 Beta 版本上,手淘出现了一个必现的崩溃: …

面试官吐槽:“Python程序员就是不行!”网友:我能把你面哭!

最近几年,Python莫名火了起来,很多公司都想赶上这“莫名”的热潮,招聘到大牛人才。但是,最近一个HR在社交网站的吐槽又火了:那么问题来了,市面上为什么鲜有企业满意的优秀的Python程序员?企业到…

python3-pandas 数据结构 Series、DataFrame 基础

Pandas 应用 Pandas 的主要数据结构是 Series (一维数据)与 DataFrame(二维数据),这两种数据结构足以处理金融、统计、社会科学、工程等领域里的大多数典型用例。 数据结构 Series 是一种类似于一维数组的对象&#xf…

十年磨一剑 | 淘宝如何打造承载亿级流量的首页?

阿里妹导读:手机淘宝作为整个互联网领域旗舰 APP 之一,装机量和用户访问量都是名列前茅的。而首页作为打开手机淘宝的门面,是淘宝电商领域的主要流量入口和服务消费者的核心阵地,其业务的复杂性之高、系统的稳定性之重都有着极高的…

switchhosts 没有修改hosts的权限解决方案

使用swtichHost工具切换开发环境时候提示没有权限问题,如下图。。 解决方案有两点 1、进入 C:\Windows\System32\drivers\etc右键点击hosts的属性查看 属性的只读是否被勾选了,如果被勾选了将勾选勾去掉 上述完成后以管理员身份运行(管理员…

闲鱼亿级商品结构化背后的思考和演进

1. 缘起 闲鱼是一个典型的C2C场景的闲置交易平台。每个在闲鱼的用户都能享受到自由交易的乐趣。在这里,可能你只要简单的输入商品名,商品价格,库存等信息就能完成一个商品的发布。即便是发布以后,你也可以随时修改价格&#xff0…

QingStor NeonSAN跻身四强 新风口下的青云QingCloud正在厚积薄发

人类以日新月异的速度刷新着科技的成果,其中存储的发展历史尤其悠久,堪称万年进化史。自文明诞生以来,我们就一直在寻求能够更有效存储信息的方式,从4万年前的洞穴壁画、6000年前泥板上的楔形文字,到今天正在普及的SSD…

python3-pandas DataFrame 索引、bool索引、pandas 字符串方法

1、DataFrame 索引 1.1 普通索引取值 pandas 取行或者列的注意点: 方括号写数组,表示取行,对行进行操作方括号写字符串,表示取列,对列进行操作 import pandas as pd import numpy as np # pandas 取行或者列的注意…