使用 NumPy 步幅沿 2D 数组的最后一个轴滑动窗口以给出 3D 数组

2023-12-06

我正在尝试使用该功能as_strided from numpy.lib.stride_tricks从更大的二维数组中提取子系列,但我很难找到合适的东西来编写strides争论。

假设我有一个矩阵m其中包含 5 个长度为 (a=)10.我想提取长度的子一维数组(b=)4 对于每个一维数组m.

import numpy
from numpy.lib.stride_tricks import as_strided

a, b = 10, 4
m = numpy.array([range(i,i+a) for i in range(5)])

# first try
sub_m = as_strided(m, shape=(m.shape[0], m.shape[1]-b+1, b))
print sub_m.shape # (5,7,4) which is what i expected
print sub_m[-1,-1,-1] # Some unexpected strange number: 8227625857902995061

# second try with strides argument
sub_m = as_strided(m, shape=(m.shape[0], m.shape[1]-b+1, b), strides=(m.itemize,m.itemize,m.itemize))
# gives error, see below

AttributeError:“numpy.ndarray”对象没有属性“itemize”

正如你所看到的,我成功地获得了正确的形状sub_m在我的第一次尝试中。然而我找不到该写什么strides=()

欲了解更多信息:

m = [[ 0  1  2  3  4  5  6  7  8  9]
 [ 1  2  3  4  5  6  7  8  9 10]
 [ 2  3  4  5  6  7  8  9 10 11]
 [ 3  4  5  6  7  8  9 10 11 12]
 [ 4  5  6  7  8  9 10 11 12 13]]

预期输出:

sub_n = [
         [[0 1 2 3] [1 2 3 4] ... [5 6 7 8] [6 7 8 9]]
         [[1 2 3 4] [2 3 4 5] ... [6 7 8 9] [7 8 9 10]]
         [[2 3 4 5] [3 4 5 6] ... [7 8 9 10] [8 9 10 11]]
         [[3 4 5 6] [4 5 6 7] ... [8 9 10 11] [9 10 11 12]]
         [[4 5 6 7] [5 6 7 8] ... [9 10 11 12] [10 11 12 13]]
        ]

edit:我有更多数据,这就是我想使用的原因as_strided(效率)


这是一种方法np.lib.stride_tricks.as_strided -

def strided_lastaxis(a, L):
    s0,s1 = a.strides
    m,n = a.shape
    return np.lib.stride_tricks.as_strided(a, shape=(m,n-L+1,L), strides=(s0,s1,s1))

关于步幅的一些解释as_strided :

我们有 3D 步幅,沿着最后一个/第三个轴增加一个元素,所以s1那里是最后一个轴的跨步。第二个轴跨过相同的一个元素“距离”,所以s1也为此。对于第一个轴,当我们移动到下一行时,步幅与数组的第一个轴步幅长度相同,因此s0 there.

样本运行 -

In [46]: a
Out[46]: 
array([[0, 5, 6, 2, 3, 6, 7, 1, 4, 8],
       [2, 1, 3, 7, 0, 3, 5, 4, 0, 1]])

In [47]: strided_lastaxis(a, L=4)
Out[47]: 
array([[[0, 5, 6, 2],
        [5, 6, 2, 3],
        [6, 2, 3, 6],
        [2, 3, 6, 7],
        [3, 6, 7, 1],
        [6, 7, 1, 4],
        [7, 1, 4, 8]],

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

使用 NumPy 步幅沿 2D 数组的最后一个轴滑动窗口以给出 3D 数组 的相关文章

  • opencv水印周围的轮廓

    我想在图像中的水印周围画一个框 我已经提取了水印并找到了轮廓 但是 不会在水印周围绘制轮廓 轮廓是在我的整个图像上绘制的 请帮我提供正确的代码 轮廓坐标的输出为 array 0 0 0 634 450 634 450 0 dtype int
  • 为什么删除临时文件时出现WindowsError?

    我创建了一个临时文件 向创建的文件添加了一些数据 已保存 然后尝试将其删除 但我越来越WindowsError 编辑后我已关闭该文件 如何检查哪个其他进程正在访问该文件 C Documents and Settings Administra
  • Python 2.7 中的断言对我来说不起作用示例assertIn

    我的 Mac 上安装了 python 2 7 通过在终端中运行 python v 进行验证 当我尝试使用任何新的 2 7 断言方法时 我收到 AtributeError 我看过http docs python org 2 library u
  • sklearn 中的 pca.inverse_transform

    将我的数据拟合后 X 我的数据 pca PCA n components 1 pca fit X X pca pca fit transform X 现在 X pca 具有一维 当我根据定义执行逆变换时 它不是应该返回原始数据 即 X 二维
  • Python3.0 - 标记化和取消标记化

    我正在使用类似于以下简化脚本的内容来解析较大文件中的 python 片段 import io import tokenize src foo bar src bytes src encode src io BytesIO src src l
  • Pandas:如果单元格包含特定文本则删除行

    pandas 中的这段代码不起作用 如果该列包含提供的任何文本 数字 我希望它删除该行 目前 我只能在单元格与我的代码中传递的确切文本匹配时才能使其工作 因为它只删除显示 Fin 的单元格不是金融或金融 df2 df df Team Fin
  • Emacs 24.x 上的 IPython 支持

    我对 IPython 与 Emacs 的集成感到困惑 从 Emacs 24 开始 Emacs 附带了自己的python el 该文件是否支持 IPython 还是仅支持 Python 另外 维基百科 http emacswiki org e
  • Django send_mail SMTPSenderRefused 530 与 gmail

    一段时间以来 我一直在尝试使用 Django 从我正在开发的网站接收电子邮件 现在 我还没有部署它 并且我正在使用Django开发服务器 我不知道这是否会影响它 这是我的 settings py 配置 EMAIL BACKEND djang
  • .pyx 文件出现未知文件类型错误

    我正在尝试构建一个包含 pyx 文件的 Python 包 pyregion 但在构建过程中出现错误 检查以下输出 python setup py build running build running build py creating b
  • Tensorflow 与 Keras 的兼容性

    我正在使用 Python 3 6 和 Tensorflow 2 0 并且有一些 Keras 代码 import keras from keras models import Sequential from keras layers impo
  • 使用Python计算目录的大小?

    在我重新发明这个特殊的轮子之前 有没有人有一个很好的例程来使用 Python 计算目录的大小 如果例程能够很好地以 Mb Gb 等格式格式化大小 那就太好了 这会遍历所有子目录 总结文件大小 import os def get size s
  • 如何在 pandas 中使用 read_fwf 跳过空行?

    I use pandas read fwf http pandas pydata org pandas docs stable generated pandas read fwf htmlPython pandas 0 19 2 中的函数读
  • Jython 和 SAX 解析器:允许的实体不超过 64000 个?

    我做了一个简单的测试xml saxJython 中的解析器在处理大型 XML 文件 800 MB 时遇到以下错误 Traceback most recent call last File src project xmltools py li
  • 使用 Keras np_utils.to_categorical 的问题

    我正在尝试将整数的 one hot 向量数组制作为 keras 将能够使用的 one hot 向量数组来拟合我的模型 这是代码的相关部分 Y train np hstack np asarray dataframe output vecto
  • 从多维无穷大数组中删除数组元素

    我想删除一个特定元素 例如 我想删除元素id 76在下面的数组中 而且 数组可以无限地组合在一起 这里的问题是我无法刷新页面 因为我使用 Vue js 进行即时操作 如果我能做到这一点 我的下一个问题可能是如何在我现在想要的地方添加一个元素
  • Elasticsearch 通过搜索返回拼音标记

    我用语音分析插件 https www elastic co guide en elasticsearch plugins current analysis phonetic html由于语音转换 从弹性搜索中进行一些字符串匹配 我的问题是
  • 如何与其他用户一起使用 pyenv?

    如何与其他用户一起使用 pyenv 例如 如果我在用户 test 的环境中安装了 pyenv 则当我以 test 身份登录时可以使用 pyenv 但是 当我以其他用户 例如 root 身份登录时如何使用 pyenv 即使你这么做了 我也会s
  • TKinter 中的禁用/启用按钮

    我正在尝试制作一个像开关一样的按钮 所以如果我单击禁用按钮 它将禁用 按钮 有效 如果我再次按下它 它将再次启用它 我尝试了 if else 之类的东西 但没有成功 这是一个例子 from tkinter import fenster Tk
  • 查找总和为给定数字的值组合的函数

    这个帖子查找提供的 Sum 值的组合 https stackoverflow com a 20194023 1561176呈现函数subsets with sum 它在数组中查找总和等于给定值的值的组合 但由于这个帖子已经有6年多了 我发这
  • 如何为不同操作系统/Python 版本编译 Python C/C++ 扩展?

    我注意到一些成熟的Python库已经为大多数架构 Win32 Win amd64 MacOS 和Python版本提供了预编译版本 针对不同环境交叉编译扩展的标准方法是什么 葡萄酒 虚拟机 众包 我们使用虚拟机和Hudson http hud

随机推荐

  • 什么是 Sharepoint(MOSS 2007) 开发/部署最佳实践

    我们正在工作中部署 sharepoint MOSS 2007 我正在尝试提出一种共享点开发和部署方法 我们有开发 质量保证 生产环境 我需要一种方法 最好是自动化部署从开发到质量保证以及从那里到生产的更改 我们正在创建网站集 Web 部件等
  • 求解正规方程会给出与使用“lm”不同的系数?

    我想使用以下方法计算一个简单的回归lm和普通矩阵代数 然而 我从矩阵代数获得的回归系数只有使用矩阵代数获得的回归系数的一半lm我不知道为什么 这是代码 boot example lt data frame x1 c 1L 1L 1L 0L
  • IBM Worklight - 如何重命名应用程序并更改其图标、启动图像

    我们使用现有的示例应用程序来启动 Worklight 的概念验证 我们对原始代码进行了大量更改 我们希望更改应用程序名称并自定义其图标和启动图像 我们已经设法在 xCode 中进行上述更改 名称 图标和启动画面 但这并不能满足未来从 Wor
  • MySQL将json对象附加到json对象数组

    在此表中 foo table我有一个专栏 foo ids其内容如下 id 432 id 433 我的问题是有没有办法将新的 json 对象附加到此列 例如 如果我有这个新对象 id 554 我想要我的foo ids列值变为 id 432 i
  • 更新命令上的 SQL Server 错误 - “当前命令发生严重错误”

    在 SQL Server Management Studio 中运行以下查询会出现以下错误 update table name set is active 0 where id 3 当前命令发生严重错误 如果有结果 则应丢弃 日志已被截断
  • 通过API删除github仓库

    我想使用 github API 删除存储库列表 但我得到了回应 message 凭据错误 documentation url https developer github com v3 重现步骤 首先 我在这里创建了一个个人访问令牌 htt
  • Selenium:如何通过executeScript()发送可变字符串

    我需要在系统内进行一些自动测试 有些字段得到了验证 这可能无法仅通过sendKeys 然后我正在这样做 它只是写了一些字符串 而不是整个字符串 尝试通过字符串迭代sendKeys 也不起作用 现在我正在尝试通过 javascript 将值输
  • 在c#中获取启动快捷方式

    假设我有一个可执行文件 当它启动时我想知道它是如何启动的 IE 我想知道是通过快捷方式启动还是直接启动 有了这个 string test Environment GetCommandLineArgs 0 我可以获得可执行文件的路径 但这始终
  • 如何异步运行PHP代码

    如何异步运行 PHP 代码而无需等待 我有一个很长的运行 几乎无限 应该在服务器启动时运行 并且应该异步处理而无需等待 我猜可能的选择是 在网页中运行代码并保持打开状态以执行该任务 从某些命令行实用程序调用脚本 我不知道如何 该脚本将在后台
  • 在javascript中查找三次贝塞尔曲线的所有点[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我有一个带有 2 个控制点的三次贝塞尔曲线 起点和控制点是已知的 需要获取曲线的所有点 给定控制点 起点和终点 我想要实现的是 给定一个从1到曲线长
  • 自动授予 Azure Active Directory Web 应用程序权限

    我们公司正在开发一个基于Azure组件的系统和一个连接到Azure的客户端桌面应用程序 我们的安装代码通过 Azure API 和 Azure 部署自动化自动部署 Azure 组件 正在部署的这些组件之一是我们在 Azure Active
  • Twisted.Web 和 AJAX

    我在 Twisted Web 中实现了一个玩具 Web 服务 from twisted web import server resource http class RootResource resource Resource def ini
  • 从具有重复元素的数组中随机找到一个组合,并且其总和等于 n

    如何从一个随机数中找到一个组合array具有重复元素且其总和相等n Example array is 1 2 2 3 and n is 3 答案是1 2 1 2 3 If randomSubsetSum array n 是解 那么rando
  • PyQt5 找不到已安装的 Qt5 库

    On Ubuntu 16 0 4 我正在尝试跑步这个 PyQt5 脚本 我有分布式包Qt5 via apt and PyQt5 via pip3 已安装 Error sudo video qt py 回溯 最近一次调用最后一次 文件 vid
  • 从互联网访问本地主机[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我需要在短时间内转发我的本地主机以进行测试 必须从公共互联网访问它 我怎样才能实现这个目标 有一些很好的免费服务可以让您做同样的事情 非常适合在开发 测试期间快速显示某些内容 htt
  • 使用Java进行RSA加密/解密

    我正在编写一个简单的程序 使用 Java 中的 RSA 算法进行加密 解密 我创建一个密码对象如下 Create a Cipher object Cipher rsaCipher Cipher getInstance RSA ECB NoP
  • JS:Promise 没有返回值

    我需要获取异步函数的值 我尝试使用 Promise 但这不起作用 const res new Promise function resolve reject gm readStream size bufferStream true func
  • 为什么 API 调用需要 80 毫秒的延迟才能到达控制器(在 Google App Engine 中)?

    对于到达控制器的每个 Api 调用 都需要 80 毫秒的延迟 我已经尝试了所有实例类 结果是相同的 我还没有找到任何解决方案 如图所示 RPC 调用在第 80 毫秒开始 剩余时间花在我的代码之外 嗯 可能有a lot为每个请求执行的 GAE
  • 位图大小超出特定活动的 VM 预算

    我有活动 A B 和 C 它们都设置了 ContentView 其中 XML 使用可绘制对象和背景 我将背景可绘制图像放在可绘制 nodpi 文件夹中 然而 每隔一段时间 我就会在活动 B 的崩溃报告中得到以下异常 java lang Ou
  • 使用 NumPy 步幅沿 2D 数组的最后一个轴滑动窗口以给出 3D 数组

    我正在尝试使用该功能as strided from numpy lib stride tricks从更大的二维数组中提取子系列 但我很难找到合适的东西来编写strides争论 假设我有一个矩阵m其中包含 5 个长度为 a 10 我想提取长度