首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何创建5x5二维数组的2x2子数组,旋转它,然后将其添加回原始数组?

要创建一个5x5的二维数组,并在其中选择一个2x2的子数组进行旋转,然后将旋转后的子数组添加回原始数组,可以按照以下步骤进行:

步骤1:创建5x5二维数组

首先,我们需要创建一个5x5的二维数组。可以使用Python来实现这一点。

代码语言:txt
复制
import numpy as np

# 创建一个5x5的二维数组
original_array = np.array([
    [1, 2, 3, 4, 5],
    [6, 7, 8, 9, 10],
    [11, 12, 13, 14, 15],
    [16, 17, 18, 19, 20],
    [21, 22, 23, 24, 25]
])
print("Original Array:")
print(original_array)

步骤2:选择2x2子数组

接下来,我们需要选择一个2x2的子数组。假设我们选择从位置(1, 1)开始的2x2子数组。

代码语言:txt
复制
# 选择从位置(1, 1)开始的2x2子数组
sub_array = original_array[1:3, 1:3]
print("Sub Array:")
print(sub_array)

步骤3:旋转2x2子数组

我们可以使用NumPy的rot90函数来旋转2x2子数组。

代码语言:txt
复制
# 旋转2x2子数组
rotated_sub_array = np.rot90(sub_array)
print("Rotated Sub Array:")
print(rotated_sub_array)

步骤4:将旋转后的子数组添加回原始数组

最后,我们将旋转后的子数组添加回原始数组中相同的位置。

代码语言:txt
复制
# 将旋转后的子数组添加回原始数组
original_array[1:3, 1:3] = rotated_sub_array
print("Modified Array:")
print(original_array)

完整代码

以下是完整的代码示例:

代码语言:txt
复制
import numpy as np

# 创建一个5x5的二维数组
original_array = np.array([
    [1, 2, 3, 4, 5],
    [6, 7, 8, 9, 10],
    [11, 12, 13, 14, 15],
    [16, 17, 18, 19, 20],
    [21, 22, 23, 24, 25]
])
print("Original Array:")
print(original_array)

# 选择从位置(1, 1)开始的2x2子数组
sub_array = original_array[1:3, 1:3]
print("Sub Array:")
print(sub_array)

# 旋转2x2子数组
rotated_sub_array = np.rot90(sub_array)
print("Rotated Sub Array:")
print(rotated_sub_array)

# 将旋转后的子数组添加回原始数组
original_array[1:3, 1:3] = rotated_sub_array
print("Modified Array:")
print(original_array)

输出结果

代码语言:txt
复制
Original Array:
[[ 1  2  3  4  5]
 [ 6  7  8  9 10]
 [11 12 13 14 15]
 [16 17 18 19 20]
 [21 22 23 24 25]]
Sub Array:
[[ 7  8]
 [12 13]]
Rotated Sub Array:
[[13  7]
 [12  8]]
Modified Array:
[[ 1  2  3  4  5]
 [ 6 13  7  9 10]
 [11 12  8 14 15]
 [16 17 18 19 20]
 [21 22 23 24 25]]

解释

  1. 创建5x5二维数组:我们使用NumPy创建了一个5x5的二维数组。
  2. 选择2x2子数组:我们从原始数组中选择了一个2x2的子数组。
  3. 旋转2x2子数组:我们使用np.rot90函数旋转了选中的子数组。
  4. 将旋转后的子数组添加回原始数组:我们将旋转后的子数组放回原始数组中相同的位置。

通过这种方式,我们可以轻松地创建、旋转和替换二维数组中的子数组。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

NumPy 数组切片及数据类型介绍

NumPy 数组切片NumPy 数组切片用于从数组中提取子集。类似于 Python 中列表切片,但支持多维数组。一维数组切片要从一维数组中提取子集,可以使用方括号 [] 并指定切片。...每隔一个元素print(arr[::2]) # 输出:array([1, 3, 5, 7, 9])# 从倒数第三个元素到倒数第一个元素print(arr[-3:-1]) # 输出:array([8, 9])二维数组切片要从二维数组中提取子集...示例:import numpy as np# 创建二维数组arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 从第二行到第三行,第一列到第三列(不包括)...5x5 二维数组 arr,并打印以下子集:第一行所有元素第二列所有元素从左上角到右下角对角线元素2x2 数组,从第二行第三列开始在评论中分享您代码和输出。...) 函数并指定 dtype 参数来创建具有指定数据类型数组

15210
  • AI入门之数据处理(Numpy指南)

    n步取串 x[::-1] -> array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) 这是取逆序 x[5::-2] -> array([5, 3, 1]) 二维数组串操作 二维数组串操作类似..., :2] -> [[12 5] [ 7 6]] 然后修改值 x2_sub[0, 0] = 99 x2_sub -> [[99 5] [ 7 6]] 此时原始数组数据也会发生改变 x2...-> [[99 5 2 4] [ 7 6 8 8] [ 1 6 7 7]] 那么如何在不影响原始数据情况下生成一个新串来修改呢 创建数组副本 我们先创建一个原始二维数据 x2...= x2[:2, :2].copy() x2_sub_copy -> [[99 5] [ 7 6]] 然后进行修改, x2_sub_copy[0, 0] = 42 x2_sub_copy -...另一种转换维度方法是用上面切割 (:) 操作符, 比如我们有一个一维数组,想转换成二维数组, x = np.array([1,2,3]) numpy提供了个关键词 newaxis,可以在进行串切割时候指定新增维度

    1.1K20

    数组还可以这样用!常用但不为人知应用场景

    二维数组定义和初始化  在Java中,二维数组定义和初始化方式如下:int[][] array = new int[3][4];  这表示创建一个3行4列二维数组。...我们使用两个循环遍历原始矩阵中元素,并将其存储到旋转新矩阵中。...创建一个新二维整型数组result,其行数和列数都为n。结果数组用于存储旋转矩阵。  接着,使用两个循环遍历原始矩阵matrix中每个元素。...,然后使用一个循环遍历数组元素,并将其存储到Map中。...包含了一个静态方法 findMostFrequentElement,用于查找给定数组中出现次数最多元素。在该方法中,首先创建了一个名为 count HashMap,用于存储每个元素出现次数。

    29921

    R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)

    output\_matrix <- t(output\_matrix) 这里是上述图像原始28x28矩阵。...对于现在问题,图像是灰度,但我们需要通过使用array\_reshape()将二维数组重塑为三维张量来特别定义有一个通道。input\_shape变量将在后面的CNN模型中使用。...一个典型池化层将2x2池大小最大值作为输出新值,这基本上是将大小减少到一半。除了池化邻居值之外,也可以使用Dropout。...在几个二维卷积层之后,我们还需要将三维张量输出 "扁平化 "为一维张量,然后添加一个或几个密集层,将二维卷积层输出连接到目标因变量类别。...3.3.1 定义一个CNN模型结构 现在我们定义一个CNN模型,其中有两个带有最大池二维卷积层,第2层带有附加滤波以防止过拟合。然后将输出扁平化,并使用两个密集层连接到图像类别。

    1.4K30

    自动驾驶汽车交通标志识别

    labels.append(i) except: print("Error loading image") 步骤1:资料预处理: 为了处理数据,将使用numpy将其转换为数组...然后,使用形状函数验证数据集尺寸。然后,使用train_test_split函数以80:20比率将数据集分为训练和测试数据。Y_train和Y_test包含43个整数形式类,不适合模型。...ConvNets体系结构使用3层构建,然后堆叠形成完整ConvNet体系结构。以下是三层: 卷积层。 池化层。 完全连接。 卷积层:卷积层是ConvNet核心部分,执行所有计算量大任务。...在整个图像中遍历特定模式内核或过滤器,以检测特定类型特征。该遍历输出将导致一个称为要素图二维数组。该特征图中每个值都通过ReLU函数传递,以消除非线性。...完全连接:上一步收到二维输出数组通过展平过程转换为列向量。该向量被传递到多层神经网络,该网络通过一系列时期学习使用Softmax函数对图像进行分类。

    1.4K10

    TensorFlow从1到2 - 4 - 深入拆解CNN架构

    以MNIST识别为例,当输入一副28x28二维图像,我们首先会把拉平为一个长度为784一维向量,而后才将其连入隐藏层每个神经元。...需要注意是,卷积网络中各层二维结构,以及“小视窗”都是正方形,如果输入原始数据是长方形图片,则需要进行预处理。...具有对图像平移、缩放、旋转不变性。...卷积神经网络果真如同生物视觉皮层那样,先从边缘检测开始,然后逐层提升检测特征抽象层次,如下图所示: 池化层 在卷积网络架构中,一个卷积层后面,会紧跟一个池化层(Pooling Layer),主要作用就是降采样...以一个尺寸为2x2,跨距为2Max Pooling为例,池化操作对输入逐通道进行操作,只保留局部感受野中最大值形成新输出通道,如下图所示: 全连接层 经历了多次卷积和池化,网络最终提取出了原始输入最高级特征

    96770

    Android 图形处理 —— Matirx 方法详解及应用场景

    应用到 src 所指示所有坐标上,然后将变换后坐标复制到 dst 数组数组中每两个相邻点表示一个坐标(x,y),因此数组长度一般都是偶数,否则最后一个数值不参与计算 float mapRadius...int srcIndex, // 原始顶点数组开始位置 float[] dst, // 目标顶点数组 dst [x, y] int dstIndex, // 目标顶点数组开始位置...作用范围 作用范围是设置了 Matrix 全部区域,如果你将这个 Matrix 赋值给了 Canvas,作用范围就是整个画布,如果你赋值给了 Bitmap,作用范围就是整张图片 boolean...这里笔者分享一下自己在实际开发中用到 Matrix 例子 —— 相机扫描识别二维码 当我在开发这个功能时候,遇到一个棘手问题:当相机实时预览识别到二维码之后,需要将当前帧截取下来当成静态背景图,然后在识别到二维位置上显示一个小黄点...(包括在图中位置等) -> 将当前图像原始帧设置为背景图 -> 在图上二维码位置出绘制小黄点 由于 SDK 分析是裁剪灰度化过后图像,因此返回二维码位置信息也是基于裁剪过后坐标系,如果我们直接把这个坐标绘制在屏幕上

    1.5K10

    Unity基础教程系列(新)(六)——Jobs(Animating a Fractal)

    首先是原始分形克隆,然后是第一个克隆克隆,然后是第二个克隆克隆,依此类推。仅当计算机内存不足时,此过程才会停止,因此,在此之前你应该退出播放模式。 ?...(调整分形GameObject) 我们将对分形部分使用相同方向和旋转。这次我们将它们存储在静态数组中,以方便以后访问。 ? 2.2 创建部件 现在,我们将重新讨论如何创建零件。...首先更改CreatePart,以便返回新FractalPart结构值。 ? 然后使用其索引和静态数组以及对该游戏对象Transform组件引用来设置该部件方向和旋转。...创建转换矩阵最简单方法是调用静态Matrix4x4.TRS方法,并将位置,旋转和比例作为参数。返回一个Matrix4x4结构,我们可以将其复制到数组中。...为了使内容整洁,还请在OnDisable末尾删除所有数组引用。无论如何,我们都会在OnEnable中创建。 ?

    3.6K31

    Unity基础系列(四)——构造分形(递归实现细节)

    目录 1 如何构建分形2 展示内容3 构造节点4 塑造节点5 创建多个子节点6 更多节点,更好代码7 爆炸性生长8 添加颜色9、随机化Mesh10 使分形不规则11 旋转分形12 添加更多不确定...创建一个新空游戏对象并将其放置在原点。这将是分形母体。然后创建一个名为Fractal新C#脚本,并将其添加到对象上。 ? ? (工程创建) 2 展示内容 脚本有了,那么分形是什么样子呢?...然后,只有当我们在最大深度以下时,才创建一个新级。 ? ? (最大深度) 现在进入播放模式时会如何呢? 只有一个节点被创造出来了。这是为什么呢?因为我们从来没有给 depth 值,总是零。...然后,再将CreateChildren简化为一个短循环,并使用索引作为Initialization参数。 ? 数组如何工作? 数组是长度固定对象,包含一个线性变量序列。...(有洋红色提示了) 再添加第二个颜色级数,例如从白色到青色红色提示。我们将使用一个单一二维数组来容纳它们,然后在需要材质时随机选择一个。这样,当我们进入游戏模式时,我们分形看起来就会有所不同。

    1.9K10

    最全面的卷积神经网络介绍,都在这里了(附代码)

    图片来源:pexels.com 神经网络由具有权重和偏差神经元组成。通过在训练过程中调整这些权重和偏差,以提出良好学习模型。每个神经元接收一组输入,以某种方式处理然后输出一个值。...那么,CNN是如何构建? CNN体系结构 当使用普通神经网络时,需要将输入数据转换为单个向量。该向量作为神经网络输入,然后向量穿过神经网络各层。...使用单层神经网络构建图像分类器 如何使用TensorFlow创建单层神经网络,并使用它来构建图像分类器?使用MNIST图像数据集来构建系统。它是包含手写数字图像数据集。...这意味着如果有n个类,那么给定数据点标签将是长度为n数组。此数组每个元素都对应一个特定类。...需将其转换为单维数组创建输入图层: # The images are 28x28, so create the input layer # with 784 neurons (28x28=

    1.3K40

    数据结构(5):数组

    二维数组为例,按行优先存储基本思想是:先行后列,先存储行号较小元素,行号相等先存储列号较小元素。设二维数组行下标与列下标的范围分别为[0,h₁]与[0,h₂],则存储结构关系式为 ?...首先,让我们来讨论下面两个问题: 如何枚举子数独? 可以使用 box_index=row//3*3+columns//3。 如何确保行/列/数独中没有重复项?...旋转图像 ? 给定一个 n×n 二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在原地旋转图像,这意味着你需要直接修改输入二维矩阵。请不要使用另一个矩阵来旋转图像。...这样我们可以得到规律: 对于矩阵中第 i 行第 j 个元素,在旋转后,出现在倒数第 i 列第 j 个位置。 我们将其翻译成代码。...那么我们如何在方法一基础上完成原地旋转呢?

    94910

    挑战NumPy100关,全部搞定你就NumPy大师了 | 附答案

    创建一个5x5矩阵, 其对角线下方数值正好是1,2,3,4 (★☆☆) ? 19. 创建一个8x8矩阵并用棋盘图案填充 (★☆☆) ? 20....使用5种不同方法提取一个随机数组整型数据部分 (★★☆) 37. 创建一个5x5矩阵,行值从0到4 (★★☆) 38. 已知一个生成器函数, 可以生成10个整数....什么东西与numpy数组枚举等价?(★★☆) 56. 生成一个通用二维高斯型数组 (★★☆) 57. 如何将p个元素随机放置在二维数组中 (★★☆) 58....减去矩阵每行均值 (★★☆) 59. 如何按第n列排序数组?(★★☆) 60. 如何判断一个二维数组里是否有空列? (★★☆) 61....将int向量转换为二元矩阵来表示(★★★) 96. 设有一个二维数组如何提取值和其他行都不同行?(★★★) 97.

    4.9K30

    SciPy之图像处理小结

    # 改变图像大小 imresize(arr, size, interp='bilinear', mode=None): misc.imresize方法可以改变图像大小,第一个参数是原始图像数组,第二个参数是改变后图像大小...貌似近邻插值效果比较差。 # 图片显示 imshow方法主要用在交互式环境下,比如IPython,一般不用。 misc.imshow(img) # 图片旋转 图片旋转就是把图片旋转。!!...旋转之后区别在于旋转角度不同而不同。misc.imrotate方法,其中第二个参数代表旋转角度, 第三个是插值方法。...,input,输入,sigma是高斯滤波核标准差,看一下文档中一个栗子,输入一个5x5矩阵a,经过标准差为1高斯滤波器,输出5x5矩阵。...然后我就开始各种百度,Google,最终知道。哎,都怪自己头发短,见识少啊。以前一直接触是RGB,话说还三个通道呢啊,其实这仅仅是二维图像。这里二维可以理解为平面。

    3K70

    Pytorch | 《卷积神经网络》之二维卷积

    2 卷积在图像中简单应用 3 本文小结 4 参考文献 正文开始 1 如何计算卷积 二维卷积其实就是一个二维数组和一个二维核(kernel)数组之间互相关运算,然后得到一个新二维数组过程。...如上图所示,输入是一个3x3二维数组,卷积使用核采用是一个2x2数组,该数组在卷积计算中,又被称为卷积核或者过滤器,大小主要取决于这个数组行数和列数。...当卷积窗口滑动到某一位置时,窗口中输入数组与核数组按元素相乘并求和,得到输出数组中相应位置元素。对于输出数组主要计算过程如下图所示: ?...2 卷积在图像中简单应用 ‍‍ ‍‍检测图像中物体边缘,即找到像素变化位置。首先我们构造一张6×86×8图像(即高和宽分别为6像素和8像素图像)。中间4列为黑(0),其余为白(1)。...3 本文小结 1、 二维卷积层核心计算是二维互相关运算。在最简单形式下,它对二维输入数据和卷积核做互相关运算然后加上偏差。 2、可以设计卷积核来检测图像中边缘。

    1.9K31

    【NumPy 数组副本 vs 视图、NumPy 数组形状、重塑、迭代】

    副本拥有数据,对副本所做任何更改都不会影响原始数组,对原始数组所做任何更改也不会影响副本。 视图不拥有数据,对视图所做任何更改都会影响原始数组,而对原始数组所做任何更改都会影响视图。...视图: 实例 创建视图,更改原始数组然后显示两个数组: import numpy as np arr = np.array([1, 2, 3, 4, 5]) x = arr.view() arr[...我们可以将 8 元素 1D 数组重塑为 2 行 2D 数组 4 个元素,但是我们不能将其重塑为 3 元素 3 行 2D 数组,因为这将需要 3x3 = 9 个元素。...实例 将 8 个元素 1D 数组转换为 2x2 元素 3D 数组: import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr...解决了我们在迭代中面临一些基本问题,让我们通过例子进行介绍。

    13910

    2023-04-07:求解矩阵得分点问题!——本文探讨蚂蚁金服算法面试题,介绍两种解决方案:递归和数学公式。文章附有代码和示例,适合算法爱好者和面试备战者参考。

    具体而言,该算法首先判断输入 n 和 m 是否满足小于 2 条件,如果满足,则直接返回 0,否则创建一个二维数组 matrix,对其进行递归处理,从左到右、从上到下枚举每一个格子,将其置为 1 或...0,然后递归到下一个格子,计算符合条件得分点数量,最后返回总得分点数。...在具体实现过程中,由于矩阵中只会有大小为 2x2 矩阵产生得分点,因此可以先遍历整个矩阵,查找是否存在符合条件 2x2 矩阵,并记录得分点数量,最后返回总得分点数。...空间复杂度:O(nm),因为该算法需要创建一个二维数组来存储矩阵,数组大小为 nm。...该公式计算过程是先计算矩阵中所有格子数量 nm,然后减去不符合条件行数 n 和列数 m,再加上只包含一个得分点情况,最后乘以包含 2 个得分点情况数量。

    20210

    2023-04-07:求解矩阵得分点问题!——本文探讨蚂蚁金服算法面试题,介绍两种解决方案:递归和数学公式。文章附有代码和示例,

    具体而言,该算法首先判断输入 n 和 m 是否满足小于 2 条件,如果满足,则直接返回 0,否则创建一个二维数组 matrix,对其进行递归处理,从左到右、从上到下枚举每一个格子,将其置为 1 或...0,然后递归到下一个格子,计算符合条件得分点数量,最后返回总得分点数。...在具体实现过程中,由于矩阵中只会有大小为 2x2 矩阵产生得分点,因此可以先遍历整个矩阵,查找是否存在符合条件 2x2 矩阵,并记录得分点数量,最后返回总得分点数。...空间复杂度:O(nm),因为该算法需要创建一个二维数组来存储矩阵,数组大小为 nm。...该公式计算过程是先计算矩阵中所有格子数量 n*m,然后减去不符合条件行数 n 和列数 m,再加上只包含一个得分点情况,最后乘以包含 2 个得分点情况数量。

    13220
    领券