Numpy-convertible 类可以从序列内部正确转换为 ndarray?

2024-02-05

The __array__方法允许自定义类型自动转换为 numpy。例如。,

>>> class Convertible:
...  def __array__(self):
...    return np.zeros(7)
>>> np.array(Convertible())
array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.])

很遗憾,__array__如果自定义类型出现在序列内,则不起作用:

>>> np.array([Convertible(), Convertible()])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: float() argument must be a string or a number, not 'Convertible'

有办法修复吗Convertible这样就可以转换一个序列Convertiblenumpy 的对象np.array与转换每个值然后转换结果序列相同ndarrays?


它必须是一个序列。

numpy.array takes https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.array.html

数组,任何暴露数组接口的对象,其__array__方法返回一个数组或任何(嵌套)序列。

你打电话时numpy.array on a Convertible例如,你正在击中“一个物体,其__array__方法返回一个数组”情况。当您在可转换列表上调用它时,您会遇到“任何(嵌套)序列”情况。类型推断逻辑似乎正在选取__array__您在确定新数组的 dtype 时定义的方法,但之后,由于您的对象不提供序列协议,NumPy 假定您的对象应直接转换为整数。

实施__len__ and __getitem__,你应该能够转换[Convertible(), Convertible()]到一个数组。 NumPy 将会use序列协议而不是__array__但是,当您这样做时,将涉及比您可能想要的更多的 Python 方法调用。你必须做一些除了直接的事情之外的事情numpy.array如果您想阻止这种情况,请致电。

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

Numpy-convertible 类可以从序列内部正确转换为 ndarray? 的相关文章

随机推荐

  • 加密密钥未经授权用于持续部署 Travis → Heroku

    我正在尝试配置币管家 http www coinsmanager com 以便阿尔法版本 http alpha coinsmanager com Travis 持续集成后自动部署 这是我们的 travis yml file language
  • 如何获取颤振中列表视图滚动的索引号?

    我在 flutter 应用程序中使用下面的列表视图生成器代码 我需要在滚动时获取列表中项目的索引 就像函数一样onPageChanged 使用时PageView Builder return ListView builder itemCou
  • 在 MVC 控制器中处理 DbContext,哪种方式“更好”?

    在 MVC 5 中 脚手架代码将类似于 public class MyController Controller private MyContext db new MyContext protected override void Disp
  • 使用fences清理命令缓冲区并同时同步交换链图像

    假设我有一个交换链 其中包括n图像和我允许k 飞行中的帧 我确保之间的正确同步vkAcquireNextImageKHR vkQueueSubmit and vkQueuePresentKHR通过一组信号量imageAvailableSem
  • 更改 MGTwitterEngine 的委托

    我已经使用 MGTwitterEngine 的扩展类通过 xAuth 设置并成功登录 我的问题是如果我想将其传递给另一个视图控制器 我如何更改委托类 因为它是某种弱引用 interface MGTwitterEngine NSObject
  • iOS swift 流媒体应用程序无法在后台模式下播放音乐

    我的应用程序运行良好 但一旦屏幕安全打开或在 iPhone 上执行其他操作 流就会停止 我激活了后台模式 正在播放音频 但这没有帮助 这是我的 ViewController swift import UIKit import MediaPl
  • HTML 5 是否需要 ``

    当编写 html 5 文档类型时 您是否应该包含就像您之前使用 HTML4 doctype 时所做的那样 还是应该使用不同的 xhtml HTML5 不需要使用xmlns属性 因为它是 XHTML 特有的 这意味着甚至 HTML 4 也不使
  • PHP - 魔术引号 gpc 和 stripslashes 问题

    好的 我的托管公司有magic quotes gpc turned ON我使用以下代码编写了我的 PHP 脚本stripslashes 在此准备过程中 但现在托管公司表示将转向magic quotes gpc关闭 我想知道现在我的数据会发生
  • 类型同义词对类型类的实例有什么影响? GHC 中的 TypeSynonymInstances 编译指示有何作用?

    我正在阅读现实世界哈斯克尔第151页 我盯着下面这段话看了一个多小时 回想一下 字符串是以下的同义词 Char 它又是类型 a 其中 Char 替换为类型 参数a 根据 Haskell 98 的 规则 我们不允许提供 在以下情况下用类型代替
  • 用 .NET 编写的服务可以自行终止吗?

    我有一个用 C 编写的服务应用程序 在某些情况下 我希望它自行终止 这会在服务运行一段时间后发生 因此在 OnStart 事件中不会发生这种情况 到目前为止我读到的所有内容都表明终止服务的唯一安全方法是通过服务控制管理器 我的服务作为本地服
  • 单元测试实体框架

    我刚刚开始使用 Entity Framework v4 和 Linq 我有一个实体数据模型 它是从数据库生成的 然后 我实现了存储库类 以便实现我的实体的业务逻辑 它们包含用于与实体 数据库交互的 LINQ 查询 在不访问数据库的情况下对我
  • delphi 对象赋值与:=

    有人可以解释一下以下之间的区别 1 newObj TMyObject Create newObj Assign oldObj and 2 newObj oldObj 2 确实newObj and oldObj引用同一个对象 抱歉 如果之前已
  • acts_as_taggable_on 标签添加两次

    我有一个 RoR 应用程序 允许用户标记其集合中的项目 我使用 tag it js Jquery 插件并使用 Ajax 调用在 ItemsController 中添加和删除标签 我的问题是每个标签添加两次 因此当我执行 item tags
  • CSS中不同高度的块的垂直对齐[重复]

    这个问题在这里已经有答案了 我试图达到类似的效果this https blaskdemo wordpress com 也就是说 我有一些块 这里 articles 具有相同的宽度但可以具有不同的高度 并且我希望它们位于其上邻居的旁边 当内联
  • 如何在 WCF 数据服务中获得内部联接

    假设我有 2 个表 table1 和 table2 具有共享密钥 id 如果我想使用 sql 对这两个表进行内部联接 我会做类似的事情 select id x y z from table1 inner join table2 on tab
  • play 2.4 中的插件、依赖项、模块和子项目有什么区别?

    我是 playframework 的新手 刚刚学习 我对依赖项 模块 插件和子项目有点困惑 它们有何不同 这是我的理解 可能是错的 依赖项 是播放应用程序运行所需的所有库 子项目 是另一个父应用程序内的播放应用程序 不确定 插件 和 模块
  • Rescue_from 不会从视图或助手中拯救 Timeout::Error

    我的应用程序控制器中有一个 around filter 用于将所有操作封装在超时块中 以便操作在达到 30 秒 Heroku 限制之前失败 我还有一个rescue from Timeout Error 来彻底挽救这些超时 不幸的是 resc
  • 允许在 React Native 中关注 TextInput 时点击/按下项目

    我有一个TextInput其功能是对某些结果进行搜索 过滤 结果显示在ScrollView 我遇到的问题是 虽然国家focus on the TextInput 用户必须点击两次才能选择该项目 这是一个TouchableOpacity 在里
  • Laravel 中的一次性自定义 cron 计划

    我想在用户在表单中输入的自定义日期和时间运行一次 cron 做这个的最好方式是什么 我发现可以像这样在 laravel 中安排自定义 cron gt cron 按照自定义 Cron 计划运行任务 但我找不到时间格式 的含义 或者更简单 可以
  • Numpy-convertible 类可以从序列内部正确转换为 ndarray?

    The array 方法允许自定义类型自动转换为 numpy 例如 gt gt gt class Convertible def array self return np zeros 7 gt gt gt np array Converti