python将二维数组升为一维数组或二维降为一维方法实例
作者:赵孝正 发布时间:2023-07-25 07:51:59
标签:python,二维数组,一维数组
1. 二维(多维)数组降为一维数组
方法1: reshape()+concatenate 函数,
这个方法是间接法,利用 reshape() 函数的属性,间接的把二维数组转换为一维数组;
import numpy as np
mulArrays = 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 np
x = 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]]
来源:https://blog.csdn.net/weixin_46713695/article/details/126725305


猜你喜欢
- 前言python中常用的写爬虫的库常有urllib2、requests,对于大多数比较简单的场景或者以学习为目的,可以用这两个库实现。这里有
- 1. 一个简单的字典我们先从写一个简单的字典示例开始,顺便看一下 python 字典的语法。student ={'姓名':&
- 安装完 Oracle11g 之后,想打开自带的 SQL Plus 来学习,然后按照提示用 sys 用户来连接数据库,可输了好几次都提示一个错
- 最近一两年短视频业务风生水起,各个视频网站都有各自特色的短视频内容。如果有这样一个程序,可以把各大视频网站的热门用户最新发布的视频都下载下来
- ISSET();——适合于检测是否存在这个参数。 定义和作用范围:用于测试一个变量是否具有值(包括0,FALSE,或者一个空字串,但不能是N
- TensorFlow中tf.batch_matmul()用法如果有两个三阶张量,size分别为a.shape = [100, 3, 4]b.
- 由于同事电脑上没有直接可以压缩gz.tar格式的压缩软件,而工作中这个又时常需要将zip文件转换为gz.tar格式,所以常常将压缩为zip格
- 多线程多线程是个提高程序运行效率的好办法,本来要顺序执行的程序现在可以并行执行,可想而知效率要提高很多。但是多线程也不是能提高所有程序的效率
- python 判断三个数字中的最大值,具体代码如下所示:#判断三个数中最大值n1= int(input('please enter
- 【实验目的】:了解SQL语言的使用,进一步理解关系运算,巩固数据库的基础知识。【实验要求】:掌握利用Select语句进行各种查询操作:单表查
- 一、准备工作请参照 Vue前端框架搭建 使用模板创建框架。二、创建登录页1.main.js 中引入全局 ToastPlugin、Loadin
- 需要转载的小伙伴转载后请注明转载的地址需要用到的库from bs4 import BeautifulSoupimport requestsi
- 这篇文章主要介绍了Python列表切片常用操作实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为N
- 本文实例讲述了python操作redis的方法。分享给大家供大家参考。具体如下:#!/usr/bin/python#coding=utf-8
- 前言当我们需要安装python的第三方库时,通常都是打开cmd输入pip install xxx去安装。但是默认安装路径在C盘,极大占用空间
- 本文实例讲述了python随机生成指定长度密码的方法。分享给大家供大家参考。具体如下:下面的python代码通过对各种字符进行随机组合生成一
- Variant变量一般会将其代表的数据子类型自动转换成合适的数据类型,但有时候,自动转换也会造成一些数据类型不匹配的错误.这时,可使用转换函
- 1、线程池模块引入from concurrent.futures import ThreadPoolExecutor2、使用线程池一个简单的
- 在python中对一个元组排序我的同事Axel Hecht 给我展示了一些我所不知道的关于python排序的东西。 在python里你可以对