文章目录

  • 1. 二维(多维)数组降为一维数组
  • 2. 一维数组升为 2 维数组

1. 二维(多维)数组降为一维数组

方法1: reshape()+concatenate 函数

  • 这个方法是间接法,利用 reshape() 函数的属性,间接的把二维数组转换为一维数组;
import numpy as npmulArrays = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(list(np.concatenate(mulArrays.reshape((-1, 1), order="F"))))Out[1]:
[1, 4, 7, 2, 5, 8, 3, 6, 9]

方法2: flatten() 函数

  • 推荐使用这个方法,这个方法是 numpy 自带的函数;
# coding = utf-8
import numpy as np
import random# 把二维数组转换为一维数组
t1 = np.arange(12)
print(t1)
Out[0]: [ 0  1  2  3  4  5  6  7  8  9 10 11]
t2 = t1.reshape(3, 4)
print(t2)t3 = t2.reshape(t2.shape[0] * t2.shape[1], )
print(t3)t4 = t2.flatten()
print(t4)

运行效果如下图所示:

可以看到这两种方式都可以把二维数组转换为一维数组,但是推荐使用 flatten() 函数,该方法也可以将多维数组转换为一维数组。

import numpy as np
a = np.array([[1, 2], [3, 4], [9, 8]])
b = a.flatten()
print(b)

输出结果为:[1, 2, 3, 4, 9, 8]

方法3: itertools.chain

import numpy as np
a = np.array([[1, 2], [3, 4], [9, 8]])# 使用库函数
from itertools import chain
a_a = list(chain.from_iterable(a))
print(a_a)

输出结果为:[1, 2, 3, 4, 9, 8]

方法4: sum()

mulArrays = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(sum(mulArrays, []))  # [1, 2, 3, 4, 5, 6, 7, 8, 9]

方法5:operator.add + reduce

import operator
from functools import reduce
mulArrays = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(reduce(operator.add, mulArrays))  # [1, 2, 3, 4, 5, 6, 7, 8, 9]

方法6:列表推导式

mulArrays = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print([i for arr in mulArrays for i in arr])  # [1, 2, 3, 4, 5, 6, 7, 8, 9]

2. 一维数组升为 2 维数组

方法1:numpy 方法

利用函数 reshape 或者是 resize

使用 reshape 的时候需要注意 reshape 的结果不改变,因此适用于还要用到原数组的情况。

使用 resize 会改变原数组,因此适用于一定需要修改后的结果为值的情况。

import numpy as npx = np.arange(20)  # 生成数组
print(x)result = x.reshape((4, 5))  # 将一维数组变成4行5列  原数组不会被修改或者覆盖
x.resize((2, 10))  # 覆盖原来的数据将新的结果给原来的数组
print(x)

输出结果

[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19][[ 0  1  2  3  4  5  6  7  8  9][10 11 12 13 14 15 16 17 18 19]]

python将二维数组升为一维数组 或 二维降为一维相关推荐

  1. Python 三维数组升为四维数组

    在尝试用深度学习做项目时,发现对于Pytorch框架下的cnn网络,灰度图的输入格式应该为(n,ch,h,w).n为图片数量,ch为通道数,h,w为图片长宽像素. 然而实际在opencv处理的通道数为 ...

  2. Python数组操作将一维数组变成二维数组

    一.问题 我们在进行数组操作的时候会遇到将一个低维的数组变成一个高维的素数组 二.解决 第一种方法 基本思路就是将低维数组进行等长的循环,在第一次为零的情况下,需要添加一个[]数组,原因是将它的基本框 ...

  3. python将二维数组转换为一维数组_python的set处理二维数组转一维数组的方法示例...

    for splitValue in set(dataset[:, featureIndex].tolist()): 首先set是一个无序,无重复的数据结构,所以很多时候使用它来进行去重:但是set接收 ...

  4. python一维数组和二维数组,Python numpy实现二维数组和一维数组拼接的方法

    撰写时间:2017.5.23 一维数组 1.numpy初始化一维数组 a = np.array([1,2,3]); print a.shape 输出的值应该为(3,) 二维数组 2.numpy初始化二 ...

  5. Python输入(一维数组、字符串、二维数组、三维数组等)程序

    Python输入的程序归类 输入一个一维数组 #输入一个数组 arr = input() num = [int(n) for n in arr.split(',')] #如果是输入一系列由空格隔开的数 ...

  6. python一维数组和二维数组_Python numpy实现二维数组和一维数组拼接的方法

    Python numpy实现二维数组和一维数组拼接的方法 撰写时间:2017.5.23 一维数组 1.numpy初始化一维数组 a = np.array([1,2,3]); print a.shape ...

  7. python中的二维数组与一维数组,矩阵和一维数组之间的运算

    一.python中的二维数组和一维数组之间的运算 1.当二维数组为p×p维 a=np.array([[1,2],[3,4]]) print(a.shape) a 输出: (2, 2) array([[ ...

  8. Python numpy实现二维数组和一维数组拼接

    撰写时间:2017.5.23 一维数组 1.numpy初始化一维数组 a = np.array([1,2,3]); print a.shape 输出的值应该为(3,) 二维数组 2.numpy初始化二 ...

  9. python生成一维数组,二维数组

    1. 列表 a1=[[0] * 5] print(a1) print(type(a1)) #输出: [[0, 0, 0, 0, 0]] <class 'list'> type是内置函数,不 ...

  10. python输入数组_Python输入数组(一维数组、二维数组)

    一维数组: arr = input("") //输入一个一维数组,每个数之间使空格隔开 num = [int(n) for n in arr.split()] //将输入每个数以空 ...

最新文章

  1. .net mysql中文乱码解决办法
  2. 计算机图形学在GIS中的应用,GIS在交通中的应用与发展
  3. 十五、深入Java的数组(上篇)
  4. 正态分布的前世今生(一)
  5. 凭自己本事单的身是一种怎样的体验?你根本配不上如此优秀的我!
  6. Python高级编程(三)
  7. anaconda Pycharm jupyter环境配置教程(最后一次写了!!!)
  8. shell条件检查原理:command echo ‘success‘ || echo ‘error‘
  9. Linux操作Oracle(5)——Oracle11g 卸载OPatch安装补丁的方法【rollback已安装的补丁】及报错问题解决
  10. Core data 框架
  11. GDI+中发生一般性错误 Winform Image.Save(mstream, ImageFormat.Png)引发
  12. 树莓派基础实验19:光敏传感器实验
  13. 键盘左右键改变css样式_CSS上的3D键盘键| 现在是现实
  14. 利用Java实现将华氏温度转换为摄氏温度
  15. 创业路演前准备好这些,距离融资成功还会远吗?
  16. JavaScript ES6 特性
  17. [HDU1512]Monkey King(可并堆)
  18. 违背基本假设的几种情况——异方差性(R语言)
  19. Qno技术:支持网吧业务目标持续推进——FVR9000系列网吧解决方案(转)
  20. 解决程序运行出错的问题

热门文章

  1. php论坛制作教程,Discuz论坛专题页面制作教程
  2. 计算机应该怎样复制桌面,电脑全屏复制快捷键是什么(史上最全电脑快捷键集合)...
  3. 【测试】你的浏览器HOLD住HTML5吗?
  4. OCR中文简体汉字字符材料制作
  5. VC++修改注册表实现禁用开启U盘
  6. linux编译一直失败,linux编译安装时常见错误解决办法
  7. 10大开源的快速开发平台—架构师必看
  8. 一种简单的图像白平衡计算方法
  9. 花生壳ping域名得到的IP与实际IP不一致的解决方法
  10. qq空间留言板php,qq留言板留言关心的话 qq空间留言板签名档图片