gpt4 book ai didi

python - 将二维数组插入(更大的)二维数组的最快方法

转载 作者:太空宇宙 更新时间:2023-11-04 07:34:29 24 4
gpt4 key购买 nike

假设有两个二维数组,ab

import numpy as np
a = np.random.rand(3, 4)
b = np.random.zeros(8, 8)

b在两个轴上总是大于a

(编辑:b 被初始化为零数组,以反射(reflect)所有未被 a 占用的元素将保持为零的事实。)

问题。将 a“插入”b最快最 Pythonic 方法是什么?

到目前为止,我已经尝试了两件事:

  1. 使用 np.pada “转换”为形状为 (8, 8) 的数组
  2. 遍历a中的每一行,并将其放入b中的相应行中

没有尝试的是使用双重嵌套循环遍历 a 的每个元素,因为我认为这对性能不友好。

动机。每个数组 a 都是一个小字符,我想将每个字符提供给接受 flattened 形状数组 (8, 8)< 的神经网络,即。形状为 (64,) 的数组。 (我认为我不能简单地将a展平到一维并用零填充它,因为这样它的二维结构就会变形,所以,我必须首先“reshape"它变成 (8, 8),对吗?)有几百万个字符。

最佳答案

关于:

b[:a.shape[0],:a.shape[1]] = a

请注意,我假设 a 将放在 b 的开头,但您可以稍微改进一下,将 a 放在任何地方:

a0,a1=1,1
b[a0:a0+a.shape[0],a1:a1+a.shape[1]] = a

关于python - 将二维数组插入(更大的)二维数组的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39566474/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com