首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用无循环的numpy将每2个数组堆叠成2D数组

使用无循环的numpy将每2个数组堆叠成2D数组
EN

Stack Overflow用户
提问于 2019-02-16 02:11:31
回答 1查看 61关注 0票数 3

假设我有一个数组,如下所示:

代码语言:javascript
运行
AI代码解释
复制
[
[1, 2, 3],
[1, 2, 3],
[1, 2, 3],
[1, 2, 3],
]

我尝试将每2个数组堆叠在一起,所以我最终得到了以下结果:

代码语言:javascript
运行
AI代码解释
复制
 [
 [[1, 2, 3], [1, 2, 3]],
 [[1, 2, 3], [1, 2, 3]],
 ]

尤其重要的是要尽可能高效,因为它将在不太强大的硬件上运行,所以我更喜欢在不循环数组的情况下这样做。有没有一种不用循环就能在numpy中实现的方法呢?提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-16 02:14:31

假设您的第一维是偶数(2的倍数),您可以使用reshape将2维数组转换为3维数组,如下所示。这里唯一的事情是使用第一维作为int(x/2),其中x是二维数组的第一维,第二维是2。转换为int非常重要,因为形状参数必须是整数类型。

代码语言:javascript
运行
AI代码解释
复制
arr_old = np.array([
               [1, 2, 3],
               [1, 2, 3],
               [1, 2, 3],
               [1, 2, 3],
               ])

x, y = arr_old.shape # The shape of this input array is (4, 3)

arr_new = arr_old.reshape(int(x/2), 2, y) # Reshape the old array

print (arr_new.shape)  
# (2, 2, 3)

print (arr_new)

# [[[1 2 3]
#  [1 2 3]]

# [[1 2 3]
#  [1 2 3]]]    

正如@orli在评论中指出的那样,您还可以这样做

代码语言:javascript
运行
AI代码解释
复制
arr_old.shape = (x//2, 2, y)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54719216

复制
相关文章
使用数组作为索引遍历numpy数组
python使用数组作为索引遍历数组 import numpy as np a=np.arange(0,5) print(a) # [0 1 2 3 4] b=np.arange(0,10).reshape(5,2) print(b) # [[0 1] # [2 3] # [4 5] # [6 7] # [8 9]] # 将一维数组作为二维数组的索引 c0=b[a][:,0] print(c0) # [0 2 4 6 8] c1=b[a][:,1] print(c1) # [1 3 5 7 9
演化计算与人工智能
2020/08/14
2.6K0
Numpy数组
一、NumPy简介 NumPy是针对多维数组(Ndarray)的一个科学计算(各种运算)包,封装了多个可以用于数组间计算的函数。 数组是相同数据类型的元素按一定顺序排列的组合,注意必须是相同数据类型的,比如说全是整数、全是字符串等。 array([1,2,3]) # 数值型数组 array(['w','s','q'],dtype = '<U1') # 字符型数组 二、NumPy 数组的生成 要使用 NumPy,要先有符合NumPy数组的数据,不同的包
见贤思齊
2020/08/05
4.9K0
Numpy数组
Numpy 中 axis = n 对应 ndarray 的第 nnn 层 [],从最外层的 axis = 0,逐渐往内层递增。
hotarugali
2022/03/03
7960
Numpy数组
循环数组
array ( 'product_id' => array ( 0 => '1', 1 => '16', ), 'product_price_id' => array ( 0 => '2', 1 => '', ), 'qty' => array ( 0 => '1', 1 => '1', ), )
botkenni
2022/01/10
1.3K0
[Python技巧]如何加快循环操作和Numpy数组运算速度
在 24式加速你的Python中介绍对循环的加速方法中,一个办法就是采用 Numba 加速,刚好最近看到一篇文章介绍了利用 Numba 加速 Python ,文章主要介绍了两个例子,也是 Numba 的两大作用,分别是加速循环,以及对 Numpy 的计算加速。
kbsc13
2019/08/16
10K0
numpy创建数组
NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。
全栈程序员站长
2022/06/26
1.6K0
numpy创建数组
numpy 数组操作
语法:numpy.arange([start, ] stop, [step, ]dtype=None)
foochane
2019/05/23
8590
Python Numpy 数组
NumPy(Numeric Python,以numpy导入)是一系列高效的、可并行的、执行高性能数值运算的函数的接口。numpy模块提供了一种新的Python数据结构——数组(array),以及特定于该结构的函数工具箱。该模块还支持随机数、数据聚合、线性代数和傅里叶变换等非常实用的数值计算工具。
smartsi
2019/08/07
2.4K0
Numpy 结构数组
在C语言中我们可以通过struct关键字定义结构类型,结构中的字段占据连续的内存空间,每个结构体占用的内存大小都相同,因此可以很容易地定义结构数组。和C语言一样,在NumPy中也很容易对这种结构数组进行操作。
用户6021899
2019/08/14
8870
for 循环将数组写入存入另一个数组
for i in ${a[*]} # 定义for 循环 变量 i 是数组里面的所有元素 do # 开始循环 ((a=2#$i)) ; echo $a # 将二进制数组元素转换为 10进制并且打印其值 b[$c]=`echo $[$a]` # 定义数组b 角标为变量c 由下面的 (c++) 辅
eisc
2021/04/20
1.8K0
numpy:数组比较
1、单条件 m=np.array([ [1,2,3], [10,20,30], [35,45,55] ]) n=(m==20) print(n) 输出 [[False False False] [False True False] [False False False]] col2=(m[:,1]==20) print(col2) 输出 [False True False] print(m[col2,:]) 输出true值的那一行数据 [[10 20 30]] 2、多条件 v
程裕强
2019/10/24
1.5K0
NumPy Essentials 带注释源码 三、NumPy 数组使用
# 来源:NumPy Essentials ch3 向量化 import numpy as np # NumPy 数组的运算是向量化的 # 数组和标量运算是每个元素和标量运算 x = np.array([1, 2, 3, 4]) x + 1 # array([2, 3, 4, 5]) # 数组和数组运算是逐元素运算 y = np.array([-1, 2, 3, 0]) x * y array([-1, 4, 9, 0]) # 需要计算内积的时候 # 使用np.dot np
ApacheCN_飞龙
2019/02/15
7740
初探numpy——数组的创建
numpy.asarray方法可以将输入转换为ndarray,如果输入本身就是ndarray则不进行复制
LRainner
2020/07/15
1.8K0
Numpy中的数组维度
在对 np.arange(24)(0, 1, 2, 3, ..., 23) 进行重新的排列时,在多维数组的多个轴的方向上,先分配最后一个轴(对于二维数组,即先分配行的方向,对于三维数组即先分配平面的方向)
benym
2022/07/14
1.6K0
js 使用for循环遍历数组[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115947.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/08
3.3K0
PHP数组定义写法和数组赋值以及数组的循环
今天分享的是PHP数组定义写法和数组赋值以及数组循环和数组取值的写法,和数组的用法。 PHP数组定义写法 // 空数组 $arr = array(); // 有值数组 $arr = array("",""); PHP数组赋值 $arr[0] = '云+社区'; array('0' => '云+社区'); PHP数组取值 $arr[0]; // 下面数组是名称数组的取值 $arr['arrname']; PHP数组循环取值 $arr = array('数值','数值','数值'); // for循环取值
小唐同学.
2022/03/07
4.3K0
数组常用循环
对于JS我们常见的循环有下面这些: for 循环 for in 循环 for of 循环 forEach() map() filter() some() every() 下面要循环的数组 var arr = ['a', 'b', 'c']; 1、for 循环 for (var i = 0; i < arr.length; i++) { console.log(arr[i]) } 2、for in 循环 for (var i in arr) { cons
用户6973020
2020/02/24
1.4K0
numpy 数组拼接方法
方法一: 转为list,使用“+”, append()或者extend() 可做简单的拼接。不过要注意一些小问题,如下图:
全栈程序员站长
2022/08/23
1.1K0
numpy 数组拼接方法
3-Numpy数组
首先让我们讨论一些有用的数组属性。我们将从定义三个随机数组开始,分别是一维,二维和三维数组。我们将使用NumPy的随机数生成器,我们将使seed设置初始值,以确保每次运行此代码时都生成相同的随机数组:
用户1418372
2020/03/20
1.2K0
数组循环左移
/* 功能:数组循环左移 日期:2013-05-20 */ #include <stdio.h> #include <stdlib.h> #include <math.h> #define LEN 6
WindCoder
2018/09/19
1.6K0

相似问题

将2D numpy数组与2D numpy数组的每一行相乘(不使用for循环)

24

优化for循环以计算2d数组numpy中每列的高度

118

无循环多维numpy数组“循环”的有效方法

20

更改无循环的numpy数组的格式

24

将numpy数组的每一行转换为numpy数组。

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文