零填充 numpy 数组

2023-12-24

在末尾用零填充数组的更Pythonic的方法是什么?

def pad(A, length):
    ...

A = np.array([1,2,3,4,5])
pad(A, 8)    # expected : [1,2,3,4,5,0,0,0]

在我的实际用例中,事实上我想将数组填充到最接近的 1024 倍数。例如:1342 => 2048, 3000 => 3072


numpy.pad with constant模式可以满足您的需要,我们可以传递一个元组作为第二个参数来告诉每个大小要填充多少个零,(2, 3)例如将垫2左侧的零和3右边的零:

Given A as:

A = np.array([1,2,3,4,5])

np.pad(A, (2, 3), 'constant')
# array([0, 0, 1, 2, 3, 4, 5, 0, 0, 0])

还可以通过传递元组的元组作为填充宽度来填充 2D numpy 数组,其格式为((top, bottom), (left, right)):

A = np.array([[1,2],[3,4]])

np.pad(A, ((1,2),(2,1)), 'constant')

#array([[0, 0, 0, 0, 0],           # 1 zero padded to the top
#       [0, 0, 1, 2, 0],           # 2 zeros padded to the bottom
#       [0, 0, 3, 4, 0],           # 2 zeros padded to the left
#       [0, 0, 0, 0, 0],           # 1 zero padded to the right
#       [0, 0, 0, 0, 0]])

对于您的情况,您指定左侧为零,右侧垫根据模除法计算:

B = np.pad(A, (0, 1024 - len(A)%1024), 'constant')
B
# array([1, 2, 3, ..., 0, 0, 0])
len(B)
# 1024

对于较大的A:

A = np.ones(3000)
B = np.pad(A, (0, 1024 - len(A)%1024), 'constant')
B
# array([ 1.,  1.,  1., ...,  0.,  0.,  0.])

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

零填充 numpy 数组 的相关文章

随机推荐

  • Emacs shell 脚本 - 如何将初始选项放入脚本中?

    受到堆栈溢出问题的启发Emacs 中惯用的文本批处理 https stackoverflow com questions 2879746 idomatic batch processing of text in emacs我尝试了一个 Em
  • 可以将父版本作为属性提供给子项吗?

    这是关于 Maven POM 的 如果我想让我的父版本也成为我的依赖项的版本 我必须设置一个属性 其值为 project parent version 当我的主 POM 的子级 其中有 project parent version 属性 因
  • 使用 Python/M2Crypto 进行 SAML 签名验证

    我正在尝试使用 M2Crypto 来验证从我的 django python 应用程序中的 SSO SAML 提供程序返回的 XML 响应中包含的签名 但我似乎无法让它工作 我的 XML 响应看起来有点像第二个示例here http www
  • 修改程序文本时ptrace POKETEXT如何工作?

    它是否绕过了跟踪进程的只读页面权限 还是需要临时更改权限才可写 如果是这种情况 权限更改对跟踪的进程可见吗 看着内核源代码 https git kernel org pub scm linux kernel git torvalds lin
  • 从单元测试项目启动并调用 WPF 应用程序上的方法

    我想启动一个 WPF 应用程序并调用 ViewModel 上的方法来控制该应用程序以进行集成测试 就像是 Test public void Test1 var application new MyApp application Initia
  • IIS 7.5 上的 Asp.net 4.0 中的会话超时

    我想将我的 Web 应用程序的超时设置为 12 小时 我已经在 web config 文件中进行了设置
  • 如何完全更改网址而不将页面重新加载到新网址?

    我已经解决了这里提出的许多关于更改网址而不重新加载的问题 虽然我尝试了几乎所有的方法 但我无法在不重新加载新页面的情况下完全更改页面的 url 包括其域名部分 我怎样才能做到这一点 这是不可能的 有充分的理由 您可以在这里获取更多相关信息
  • 为什么Perl的系统返回值不是我所期望的?

    让我首先解释一下我想要实现的目标 本质上有两个 Perl 脚本 一种是我所说的带有 UI 的主脚本 运行此脚本的用户将看到他可以从菜单调用的其他脚本的列表 该列表是通过自定义配置文件加载的 主脚本的目的是能够在将来根据需要添加其他脚本 而无
  • 我应该将费用/折扣列表合并到订单类别中还是将它们作为商品行

    我没有其他开发人员可以寻求建议或 你觉得怎么样 我在想this 所以 如果您有时间 请阅读并告诉我您的想法 显示比描述更容易 但该应用程序本质上就像一个销售点应用程序 由 3 个主要部分组成 商品 订单商品和订单 项目类是来自数据存储区的数
  • 使用行号更新 Oracle 表列

    我想用行号更新表列 中的每一行empid列应使用相关行号进行更新 我尝试了以下查询 UPDATE employee SET empid row number 但这是行不通的 任何想法 首先 这不是正确的语法row number 功能 因为你
  • sql server单行多列合并为一列

    我有这样的桌子 Reg No Student Name Subject1 Subject2 Subject3 Subject4 Total 101 Kevin 85 94 78 90 347 102 Andy 75 88 91 78 332
  • C# 中的分号

    为什么 C 中每行末尾都需要分号 为什么编译器不能知道每一行的结束位置 行终止符将使您能够将语句分成多行 另一方面 像 VB 这样的语言有一个行继续符 并且可能会引发分号的编译错误 我个人认为用分号终止语句比继续使用下划线要干净得多 最后
  • SilverStripe 3 - <%循环%>的选项

    是否有我可以添加到循环中的所有选项的列表 我不知道选项是否是正确的名称 我的意思是这些 有人可以告诉我这里可能发生的一切吗 它的正确名称是什么 你的问题有一个错误 是 or 看 您正在循环 DataObject 列表 well loop基本
  • 为什么比较 constexpr 函数的两个参数不是静态断言的常量条件?

    constexpr uint32 t BitPositionToMask int i int Size static assert i lt Size bit position out of range return 1 lt lt i 这
  • kubectl 端口转发失败

    我正在裸机 RHEL7 上运行 k8s 集群 我正在尝试运行 kubectl port forward 命令并收到错误 kubectl port forward p somepod 10000 8080 I0128 15 33 33 802
  • 从 powershell 调用 vcvarsall.bat 后运行构建脚本

    我正在尝试运行 Visual Studio 开发人员 cmd 提示符 环境变量设置批处理文件 然后运行 Powershell 脚本中的构建脚本 如下所示 cmd v on k C Program Files x86 Microsoft Vi
  • RSpec 测试 PUT 更新操作

    我正在尝试编写一些 RSpec 测试来测试我的应用程序 但我偶然发现了几个问题 但我找不到任何解决方案 1 我正在尝试测试更新操作 这是我的代码 it email is a new one do put update id user use
  • HttpApplicationState 在 MVC 控制器中不可用

    我正在使用 MVC2 和 VS2010 开发一个网站 需要使用应用程序状态全局值 我可以设置一个像 Application hits 0 这样的值在 Global asax 中 但是当尝试在 MVC 控制器中使用相同的内容时 总是会出现以下
  • 为什么我们*应该*使用EventHandler

    我讨厌事件处理程序 我讨厌我必须投sender如果我想用它做任何事 我讨厌我必须创建一个继承自的新类EventArgs to use EventHandler
  • 零填充 numpy 数组

    在末尾用零填充数组的更Pythonic的方法是什么 def pad A length A np array 1 2 3 4 5 pad A 8 expected 1 2 3 4 5 0 0 0 在我的实际用例中 事实上我想将数组填充到最接近