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 数组操作--修改数组形状、翻转数组、修改数组维度、连接数组、分割数组、数组元素的添加与删除相关推荐

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

    NumPy数组操作 Numpy 中包含了一些函数用于处理数组,大概可分为以下几类: 修改数组形状 翻转数组 修改数组维度 连接数组 分割数组 数组元素的添加与删除 修改数组形状 函数 描述 resha ...

  2. python ndarray append_9-Python-NumPy数组元素的添加与删除

    数组元素的添加与删除 相关函数列表如下: 函数 元素及描述 resize 返回指定形状的新数组 append 将值添加到数组末尾 insert 沿指定轴将值插入到指定下标之前 delete 删掉某个轴 ...

  3. JS数组方法汇总 array数组元素的添加和删除

    2019独角兽企业重金招聘Python工程师标准>>> unshift:将参数添加到原数组开头,并返回数组的长度 pop:删除原数组最后一项,并返回删除元素的值:如果数组为空则返回u ...

  4. Python学习-----起步4(列表元素的添加,删除,修改,查询,获取长度)

    目录 前言: 列表元素的添加(或者叫写入) 1.append()函数 2.extend()函数 3.insert()函数 列表元素的删除 1.remove() 函数 2. pop() 函数 3.cle ...

  5. Vue Array数组操作(变异更新、替换)

    今天小编写一下Array数组操作(变异更新.替换) 来个v-for和key小补充,方便了解接下来的课程 循环指令v-for补充: 使用v-for更新已渲染的元素列表时,默认用就地复用策略;列表数据修改 ...

  6. web 开发之js---js 中的数组操作

    js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^ var arr = new Array(); arr[0] = "aaa"; arr[ ...

  7. Javascript——进阶(事件、数组操作、字符串操作、定时器)

    目录 事件属性 数组 字符串操作 定时器 变量的作用域 封闭函数 弹框接收数据 事件属性 参数 描述 onclick 鼠标点击事件 onmouseover 鼠标移入标签,触发行为 onmouseout ...

  8. 云客Drupal源码分析之数组操作

    在drupal中关于数组的操作需求有很多是php没有直接提供的,但它们又被普遍使用,因此drupal自带了几个数组操作的类,在本系列之前写过一篇以数组合并为主题的分享,本篇将介绍其他几种类型的数组操作 ...

  9. linux awk数组长度,linux awk数组操作详细介绍

    linux awk数组操作详细介绍 用awk进行文本处理,少不了就是它的数组处理.那么awk数组有那些特点,一般常见运算又会怎么样呢.我们先看下下面的一些介绍,结合例子我 们会讲解下它的不同之处.在 ...

最新文章

  1. 10笔记本怎么和台式机联网_笔记本电脑怎么重装系统Win7?给你10分钟能完成系统重装吗?...
  2. oracle中查看pga大小,oracle调整sga、pga大小
  3. python atm银行取款系统_Python实现ATM系统
  4. python-正则表达式1909
  5. python时间模块的使用
  6. 【sklearn第二十三讲】异常检测
  7. 作为曾经Oracle的一员,谈谈老东家的此次裁员
  8. 国外英文版云购夺宝网站项目开发制作代码解析
  9. Shell设置环境变量
  10. 如何减小电压跟随器输出电阻_三分钟带你搞懂运算放大器与比较器的区别
  11. PyCharm 下载/上传gitlab 代码
  12. 小猪的Python学习之旅 —— 1.基础知识储备
  13. windows配置好用的RSS
  14. iPhone 11系列发布:没有5G加持,苹果开始“不自信”了?
  15. 【新书】崛起的超级智能:互联网大脑如何影响科技未来
  16. storm mysql trident_Apache Storm 官方文档 —— Trident 教程
  17. c类事业编计算机岗面试题,2017广西事业单位分类统考(C类)笔试试题答案
  18. Windows申请iOS证书上架App Store详细教程 (有这一篇就够了)
  19. WIN7睡眠蓝屏0X0000009F
  20. 软件工程复习重点整理 | 选自《软件工程——理论与实践》

热门文章

  1. linux ps 命令使用
  2. 常用的lucene分词器-笔记
  3. 查找练习 hash——出现过的数字
  4. 基于MaxCompute+PAI的用户增长方案实践
  5. 如何快速搭建云原生企业级数据湖架构及实践分享
  6. 战“疫”期,阿里云云效团队在家高效开发实录
  7. 如何跨项目工作空间访问MaxCompute资源和函数?
  8. 深度学习在商户挂牌语义理解的实践
  9. 中国首部智能交通微纪录片正式发布 探讨交通强国高质量发展路径
  10. 如何轻松地将可访问LAN的Pod部署到Kubernetes集群上