使用 numpy.vectorize() 旋转 NumPy 数组的所有元素

2023-12-02

我正处于学习 NumPy 的开始阶段。我有一个 3x3 矩阵的 Numpy 数组。我想创建一个新数组,其中每个矩阵都旋转 90 度。我研究过这个answer但我仍然不明白我做错了什么。

import numpy as np

# 3x3
m = np.array([[1,2,3], [4,5,6], [7,8,9]])

# array of 3x3
a = np.array([m,m,m,m])

# rotate a single matrix counter-clockwise
def rotate90(x):
    return np.rot90(x)

# function that can be called on all elements of an np.array
# Note: I've tried different values for otypes= without success
f = np.vectorize(rotate90)

result = f(a)
# ValueError: Axes=(0, 1) out of range for array of ndim=0.
# The error occurs in NumPy's rot90() function.

注意:我意识到我可以执行以下操作,但我想了解矢量化选项。

t = np.array([ np.rot90(x, k=-1) for x in a])

无需单独进行旋转:numpy有一个内置的numpy.rot90(m, k=1, axes=(0, 1))功能。默认情况下,矩阵在第一维和第二维上旋转。

如果您想更深一层旋转,您只需将发生旋转的轴设置更深一层(如果您想沿不同方向旋转,则可以选择交换它们)。或者按照文档指定:

axes: (2,) array_like

该阵列在由 轴。轴必须不同。

所以我们旋转y and z平面(如果我们标记尺寸x, y and z),因此我们要么指定(2,1) or (1,2).

您所要做的就是设置axes正确地,当你想旋转到右左:

np.rot90(a,axes=(2,1)) # right
np.rot90(a,axes=(1,2)) # left

这将旋转所有矩阵,例如:

>>> np.rot90(a,axes=(2,1))
array([[[7, 4, 1],
        [8, 5, 2],
        [9, 6, 3]],

       [[7, 4, 1],
        [8, 5, 2],
        [9, 6, 3]],

       [[7, 4, 1],
        [8, 5, 2],
        [9, 6, 3]],

       [[7, 4, 1],
        [8, 5, 2],
        [9, 6, 3]]])

或者如果你想向左旋转:

>>> np.rot90(a,axes=(1,2))
array([[[3, 6, 9],
        [2, 5, 8],
        [1, 4, 7]],

       [[3, 6, 9],
        [2, 5, 8],
        [1, 4, 7]],

       [[3, 6, 9],
        [2, 5, 8],
        [1, 4, 7]],

       [[3, 6, 9],
        [2, 5, 8],
        [1, 4, 7]]])

请注意,您只能指定axes from numpy 1.12 和(可能)未来版本.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 numpy.vectorize() 旋转 NumPy 数组的所有元素 的相关文章

  • 如何让“conda”安装程序查找“PyPi”包

    我试图使用conda http conda pydata org docs using pkgs html managing packages包管理器来安装我的 Python 包 最近 我遇到了 Anaconda org 存储库中不存在我需
  • Flask-SocketIO redis 订阅

    我在用着https github com miguelgrinberg Flask SocketIO https github com miguelgrinberg Flask SocketIO实现 WebSocket 服务器 我需要从另一
  • 如何替换Python字符串中的正确字母

    任务是 您的任务是纠正数字化文本中的错误 您只需处理以下错误 S 被误解为 5 O 被误解为 0 I 被误解为 1 我的代码 def correct string for i in string if 5 in string string
  • 使用管理员权限打开cmd(Windows 10)

    我有自己的 python 脚本来管理我的计算机上的 IP 地址 它主要在命令行 Windows 10 中执行netsh命令 您必须具有管理员权限 这是我自己的计算机 我是管理员 运行脚本时我已经使用管理员类型的用户 Adrian 登录 我无
  • Python Requests 库重定向新 url

    我一直在浏览 Python 请求文档 但看不到我想要实现的任何功能 在我的脚本中我设置allow redirects True 我想知道该页面是否已重定向到其他内容 新的 URL 是什么 例如 如果起始 URL 为 www google c
  • 将整数系列转换为交替(双元)二进制系列

    我不知道如何最好地表达这个问题 因为在这里谷歌搜索和搜索总是让我找到更复杂的东西 我很确定这是基本的东西 但对于我的生活来说 我找不到一个好的方法来做到这一点下列 给定一个整数序列 比如说 for x in range 0 36 我想将这些
  • 动态字段取决于 WTForms 的先前字段

    我正在使用 WTForms 制作表格 目前 我有这个 class UploadForm flask wtf Form fichier wtforms fields FileField u Fichier description wtform
  • 如何用函数记录一个文件?

    我有一个带有函数 lib py 但没有类的python 文件 每个函数都有以下样式 def fnc1 a b c This fonction does something param a lalala type a str param b
  • 为什么需要设置WORKON_HOME环境变量?

    我已经有一段时间没有使用 python 虚拟环境了 但我也安装了虚拟环境包装器 我的问题是 在文档页面中它说要这样做 export WORKON HOME Envs mkdir p WORKON HOME source usr local
  • 了解 Python 2.7 中的缩进错误

    在编写 python 代码时 我往往会遇到很多缩进错误 有时 当我删除并重写该行时 错误就会消失 有人可以为菜鸟提供 python 中 IndentationErrors 的高级解释吗 以下是我在玩 CheckIO 时收到的最近 inden
  • Pandas 字典键到列[重复]

    这个问题在这里已经有答案了 我有一个像这样的数据框 index column1 e1 u c680 5 u c681 1 u c682 2 u c57 e2 u c680 6 u c681 2 u c682 1 u c57 e3 u c68
  • 使用 python 脚本更改 shell 中的工作目录

    我想实现一个用户态命令 它将采用其参数之一 路径 并将目录更改为该目录 程序完成后 我希望 shell 位于该目录中 所以我想实施cd命令 但需要外部程序 可以在 python 脚本中完成还是我必须编写 bash 包装器 Example t
  • Python在没有pandas的情况下解码excel表

    我正在尝试在 python 中读取 excel 文件而不使用pandas or xlrd 我一直在尝试将结果转换为bytes to utf 8没有任何成功 xls 文件中的数据 colA colB colC spc 1D0 20190705
  • 将图与热图(可能是对数)配对?

    How to create a pair plot in Python like the following but with heat maps instead of points or instead of a hex bin plot
  • 根据标点符号列表替换数据框中的标点符号[重复]

    这个问题在这里已经有答案了 使用 Canopy 和 Pandas 我有数据框 a 其定义如下 a pd read csv text txt df pd DataFrame a df columns test test txt 是一个单列文件
  • 用 pandas DataFrame 替换 mysql 数据库表中的行

    Python 版本 2 7 6 熊猫版本 0 17 1 MySQLdb 版本 1 2 5 在我的数据库中 PRODUCT 我有一张桌子 XML FEED 表 XML FEED 很大 数百万条记录 我有一个 pandas DataFrame
  • 如何有效地比较 pandas DataFrame 中的行?

    我有一个 pandas 数据框 其中包含雷击记录以及时间戳和全球位置 格式如下 Index Date Time Lat Lon Good fix 0 1 20160101 00 00 00 9962692 7 1961 60 7604 1
  • ProcessPoolExecutor 传递多个参数

    ESPN播放器免费 class ESPNPlayerFree def init self player id match id match id team 团队名单1 277906 cA2i150s81HI3qbq1fzi za1Oq5CG
  • Chrome 驱动程序和 Chromium 二进制文件无法在 aws lambda 上运行

    我陷入了一个问题 我需要在 AWS lambda 上做一些抓取工作 所以我按照下面提到的博客及其代码库作为起点 这非常有帮助 并且在运行时环境 Python 3 6 的 AWS lambda 上对我来说工作得很好 https manivan
  • 从 Django 运行 shell 命令

    我正在 Django 中开发一个网页 使用 apache 服务器 需要调用 shell 命令来启用 禁用一些守护进程 我尝试这样做 os system service httpd restart 1 gt HOME out 2 gt HOM

随机推荐

  • 数组除法 - 将数组中存储的两个数字相除的最佳方法是什么?

    我有两个数组 被除数 除数 dividend 1 2 0 9 8 7 5 6 6 divisor 9 8 我需要的结果 股息 除数 为 quotient 1 2 3 4 5 6 7 我使用数组减法做到了这一点 从被除数中减去除数 直到被除数
  • C# WebClient - DownloadString 编码错误

    我正在尝试从 Amazon 下载 html 文档 但由于某种原因 我得到了一个错误的编码字符串 例如 K g g e 这是我尝试过的代码 using var webClient new System Net WebClient var ur
  • 如何重塑和交错矩阵元素?

    有了时间序列的值 我想将其重塑为 nx4 矩阵 X y 以便使用这些值作为机器学习算法的输入和输出值 X i 是 1x3 输入向量 y 是输出标量值 该算法将每个第二个序列值 3 个值 作为输入 以便预测第四个值 举一个实际的例子 假设我们
  • 如何在 vscode 中查看全角代码

    我想在 VS Code 中编码时使用完整视口 但是当我展开 VS Code 窗口时 这些行并没有扩展 有修复吗 使用的正确配置 为了配置 V S 代码使得代码行在 你的编辑器只会在视口的末尾换行 并且 以前从未如此 您需要将正确的值分配给
  • 如何在使用 playwright-python 运行代码结束时保持浏览器打开?

    我想使用 playwright python 自动填写一些表格 然后在提交之前仔细检查填写内容 但它总是在代码运行结束时关闭浏览器 即使我使用了handleSIGHUP False handleSIGINT False handleSIGT
  • Espresso 测试被后台线程阻止。应用程序不空闲异常:“AppNotIdleException。”

    我的 android espresso 单元测试由于某些后台线程不空闲而被阻止 我如何找出哪个线程正在阻止我的应用程序执行 android support test espresso AppNotIdleException Looped f
  • 可以从现有的 java/scala 接口和数据类型生成 .thrift 文件吗?

    有没有一种简单的方法可以采用现有的 Java scala 数据类型和 API 接口并生成相应的 thrift 文件 让 Thrift 生成server数据结构具有过度侵入性 因为它会产生以下后果 我无法注释我的数据结构 例如 XML JSO
  • 如何仅在另一个元素内部时选择一个元素?

    我有一个关于 CSS 选择器的问题 我如何选择一个 div 仅当其位于 ul 有类名saft 这个 CSS 类在其他地方使用 我不想到处改变样式 div ul class saft li div class textSlide div li
  • 使用量角器 js 剪贴板中的文本

    如何使用量角器复制特定文本 我想使用此命令加载要粘贴的文本 return browser actions sendKeys Keys CONTROL v perform Sample 加载我的文本 test 然后使用此命令粘贴 test 我
  • 如何测量 Stackdriver 上的 Firestore 读写计数

    我需要监控 Firestore 数据库的实时读 写计数 我已经使用指标创建了仪表板 所附图像显示了当前配置 但是 这会显示速率 每秒 如何计算实际计数 或者是否有不同的聚合对齐器 如果您想将 计数 添加到现有图表中 请按照以下步骤操作 在仪
  • 如何使移动键盘外观与 div 发生碰撞而不是绝对将其自身定位在其上方?

    我正在开发一个简单的聊天组件 但遇到一个问题 在移动设备上 如果我单击文本框发送消息 而不是弹出其上方的消息列表 虚拟键盘会将自己绝对定位在它 这是不可取的 因为我希望用户在键入消息时能够看到最新消息 但是 我不知道如何纠正这种行为 而且我
  • 打算播放 YouTube 播放列表 [重复]

    这个问题在这里已经有答案了 我想从我的应用程序启动 YouTube 播放列表 对于单个视频来说这是显而易见的 startActivity new Intent Intent ACTION VIEW Uri parse http www yo
  • 从 SQL 到 MS Access 查询数据:本地表与传递表

    我创建了一个应用程序 它使用以下逻辑将数据从 SQL 查询到我的 MS Access 应用程序 我使用 ODBC 连接执行存储过程 使用此指定为传递查询以在本地提取数据 它看起来像这样 strSQL EXEC StoredProcedure
  • ImageIcon 不会更新具有相同 URL 的新图像

    我想使用 JLabel Icon 来显示来自我网站的图像 http xxx xxx xxx xxx java pic test jpg 我有一个刷新按钮来新建一个新的 JLabel 和 ImageIcon 为了获取最新的图像 程序运行成功
  • matplotlib 中的 Pandas 自动日期时间格式

    我经常在一个图中绘制来自不同来源的多个时间序列数据 其中一些需要使用 matplotlib 格式化 x 轴时 我使用 matplotlibautofmt xdate 但我更喜欢 pandas 的自动格式化 我知道我可以使用手动设置格式set
  • BeautifulSoup 不同的解析器

    任何人都可以详细说明 html parser 和 html5lib 等解析器之间的区别吗 我偶然发现了一个奇怪的行为 当使用 html parser 时 它会忽略特定位置的所有标签 看看这段代码 from bs4 import Beauti
  • 在 jquery DataTables 中跳过一行的渲染

    如果在初始化期间满足条件 我想跳过行渲染 但我不知道到底将其放置在哪里 我应该把它放进去吗fnCreatedRow or fnPreDrawCallback 我怎样才能做到这一点 这是我的代码 var users tbl users tbl
  • Cygnus 启动错误:ClassNotFoundException

    我的环境是CentOS 6 6的VM 我按照中的说明进行操作https github com telefonicaid fiware cygnus blob master doc quick start guide md安装天鹅座 还安装了
  • 如何使用 Yocto 生成适用于 Windows 的工具链?

    关于我的最后一个问题我问如何获得 Qt 工具链 我在 Linux 主机上尝试过 它可以工作 现在我需要知道如何使该工具链在 Windows 平台上工作 或者我需要什么 Yocto 设置来生成 Qt Windows SDK 安装程序 Woul
  • 使用 numpy.vectorize() 旋转 NumPy 数组的所有元素

    我正处于学习 NumPy 的开始阶段 我有一个 3x3 矩阵的 Numpy 数组 我想创建一个新数组 其中每个矩阵都旋转 90 度 我研究过这个answer但我仍然不明白我做错了什么 import numpy as np 3x3 m np