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
python3-numpy 数组操作--修改数组形状、翻转数组、修改数组维度、连接数组、分割数组、数组元素的添加与删除相关推荐
- B10_NumPy数组操作、修改数组形状、翻转数组、修改数组维度、连接数组、分割数组、数组元素的添加与删除
NumPy数组操作 Numpy 中包含了一些函数用于处理数组,大概可分为以下几类: 修改数组形状 翻转数组 修改数组维度 连接数组 分割数组 数组元素的添加与删除 修改数组形状 函数 描述 resha ...
- python ndarray append_9-Python-NumPy数组元素的添加与删除
数组元素的添加与删除 相关函数列表如下: 函数 元素及描述 resize 返回指定形状的新数组 append 将值添加到数组末尾 insert 沿指定轴将值插入到指定下标之前 delete 删掉某个轴 ...
- JS数组方法汇总 array数组元素的添加和删除
2019独角兽企业重金招聘Python工程师标准>>> unshift:将参数添加到原数组开头,并返回数组的长度 pop:删除原数组最后一项,并返回删除元素的值:如果数组为空则返回u ...
- Python学习-----起步4(列表元素的添加,删除,修改,查询,获取长度)
目录 前言: 列表元素的添加(或者叫写入) 1.append()函数 2.extend()函数 3.insert()函数 列表元素的删除 1.remove() 函数 2. pop() 函数 3.cle ...
- Vue Array数组操作(变异更新、替换)
今天小编写一下Array数组操作(变异更新.替换) 来个v-for和key小补充,方便了解接下来的课程 循环指令v-for补充: 使用v-for更新已渲染的元素列表时,默认用就地复用策略;列表数据修改 ...
- web 开发之js---js 中的数组操作
js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^ var arr = new Array(); arr[0] = "aaa"; arr[ ...
- Javascript——进阶(事件、数组操作、字符串操作、定时器)
目录 事件属性 数组 字符串操作 定时器 变量的作用域 封闭函数 弹框接收数据 事件属性 参数 描述 onclick 鼠标点击事件 onmouseover 鼠标移入标签,触发行为 onmouseout ...
- 云客Drupal源码分析之数组操作
在drupal中关于数组的操作需求有很多是php没有直接提供的,但它们又被普遍使用,因此drupal自带了几个数组操作的类,在本系列之前写过一篇以数组合并为主题的分享,本篇将介绍其他几种类型的数组操作 ...
- linux awk数组长度,linux awk数组操作详细介绍
linux awk数组操作详细介绍 用awk进行文本处理,少不了就是它的数组处理.那么awk数组有那些特点,一般常见运算又会怎么样呢.我们先看下下面的一些介绍,结合例子我 们会讲解下它的不同之处.在 ...
最新文章
- 10笔记本怎么和台式机联网_笔记本电脑怎么重装系统Win7?给你10分钟能完成系统重装吗?...
- oracle中查看pga大小,oracle调整sga、pga大小
- python atm银行取款系统_Python实现ATM系统
- python-正则表达式1909
- python时间模块的使用
- 【sklearn第二十三讲】异常检测
- 作为曾经Oracle的一员,谈谈老东家的此次裁员
- 国外英文版云购夺宝网站项目开发制作代码解析
- Shell设置环境变量
- 如何减小电压跟随器输出电阻_三分钟带你搞懂运算放大器与比较器的区别
- PyCharm 下载/上传gitlab 代码
- 小猪的Python学习之旅 —— 1.基础知识储备
- windows配置好用的RSS
- iPhone 11系列发布:没有5G加持,苹果开始“不自信”了?
- 【新书】崛起的超级智能:互联网大脑如何影响科技未来
- storm mysql trident_Apache Storm 官方文档 —— Trident 教程
- c类事业编计算机岗面试题,2017广西事业单位分类统考(C类)笔试试题答案
- Windows申请iOS证书上架App Store详细教程 (有这一篇就够了)
- WIN7睡眠蓝屏0X0000009F
- 软件工程复习重点整理 | 选自《软件工程——理论与实践》