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
0
投稿
猜你喜欢
- 一、创建和管理表 1、创建表语法 create table 表名(column datatype [default expr][,colum
- 关于 游标 if,for 的例子 create or replace procedure peace_if is cursor var_c
- 问:如何让内联框架里面的网页背景透明?(用iframe嵌套一网页,怎么能够设置其背景为透明以便能显示父框架中网页的背景图?)答:这是需要 I
- <%@LANGUAGE="xxx" CODEPAGE="936"%>一般又分为<%
- 对于大多数web应用来说,数据库都是一个十分基础性的部分。如果你在使用PHP,那么你很可能也在使用MySQL—LAMP系列中举足轻重的一份子
- SQL Server具有强大的复制功能,除了将数据和数据库对象从一个数据库复制并准确分发的另一个数据库中,还要实行数据库之间的同步。SQL
- 最近在用fso,读取txt文本文件的内容时碰到了“输入超出了文件尾 ”的运行错误,当txt中的内容为空的时候就出现这个问题了,查了
- 相比SQL Server 2000提供的FOR XML查询,SQL Server 2005版本对现有功能增强的基础上增加了不少新功能,最为吸
- 当点了链接后,跳出的网页地址是https://www.aspxhome.com/ 或https://www.cidianwang.
- 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。
- 对方用<script language="javascript"> var location="&
- 比如有一个需求,通过sql语句,返回-5至5的随机整数.如果这一个放在PHP中,则非常简单直接用print rand(-5,5);?>
- 1. lr_scheduler相关lr_scheduler = WarmupLinearSchedule(optimizer, warmup
- 从本篇开始讲述如何用css实现网页的布局,即如何用css控制网页内各个元素的显示位置。如果你是一个初学者,很可能觉得做一个网页的第一步就是布
- 本文实例介绍了使用javascript来经验表单数据的方法,如:校验是否为英文,校验是否为数字及校验IP地址等: &l
- 写了一个小巧的jquery拾色工具,代码简单得不得了,只有这么几行:(function($){ $.fn.pickColor=fu
- Python通过yield提供了对协程的基本支持,但是不完全。而第三方的gevent为Python提供了比较完善的协程支持。gevent是第
- 配置要求:IIS(win2000 server 自带)、Java 2 SDK 1.4.2 (或更高版本)、Tomcat Web Server
- 一. 10句话1.不要依赖register_global=ON的环境,从你刚懂得配置php运行环境甚至尚不明白register_global
- 设计单个页面,一点一点做就行了,但处理的页面多了,每个页面都一点点的做下去是非常费时费力的,特别是当许