如何在 numpy 中制作“接受”附加的空列表网格?

2023-12-01

我正在尝试使用 numpy.append 但出了问题,它对我来说不再有意义了。有人可以解释为什么我收到错误吗?

>>> np.array([[], [], []]).shape
(3, 0)

>>> a=[[], [], []]
>>> a[1].append(3)
>>> a
[[], [3], []]

>>> b=np.array(a)
>>> b[0].append(3)
array([[3], [3], []], dtype=object)

这对我来说是合乎逻辑的,但是当我尝试以下操作时,它停止工作。

>>> c=np.array((3,0),dtype=object)
>>> c[0].append(3)
AttributeError: 'int' object has no attribute 'append'

????
>>> np.empty((3,1))[0].append(3)
AttributeError: 'numpy.ndarray' object has no attribute 'append'

>>> np.empty((3,0))[1].append(3)
AttributeError: 'numpy.ndarray' object has no attribute 'append'

>>>np.empty((6,1),dtype=object)[0].append(3)
AttributeError: 'numpy.ndarray' object has no attribute 'append'

Solved: 如何创建列表的 numpy 数组?


不要只看形状;检查 dtype,如果是对象,则检查元素的性质

In [282]: np.array([[], [], []])
Out[282]: array([], shape=(3, 0), dtype=float64)

二维浮点数数组。np.array尝试创建一个多维数字数组;只有当它无法做到这一点时,它才会创建一个对象数组。

In [283]: b=np.array([[],[3],[]])
In [284]: b
Out[284]: array([[], [3], []], dtype=object)

这里的3个子列表有不同的大小,所以它不能组成一个二维数组;结果是一个对象数组,其中对象是列表,并且具有append 方法。

In [286]: c=np.array((3,0), object)
In [287]: c
Out[287]: array([3, 0], dtype=object)

这是一个 (2,) 对象数组; 2 个元素是数字。数字没有附加方法。

In [288]: np.empty((3,1))
Out[288]: 
array([[ 0.],
       [ 0.],
       [ 0.]])

一个 (3,1) 浮点数数组。没有数字或数组的附加方法。

In [289]: np.empty((3,0))
Out[289]: array([], shape=(3, 0), dtype=float64)

另一个二维浮点数数组

In [290]: np.empty((6,1),object)
Out[290]: 
array([[None],
       [None],
       [None],
       [None],
       [None],
       [None]], dtype=object)

dtype 对象的二维数组。在这种情况下,它们被初始化为None。再次没有附加方法。

有关创建列表数组的更多信息

numpy 中数组数组的维度

and

创建不同形状数组的对象数组时如何防止 numpy 广播


In [305]: d=np.empty((3,),object)
In [306]: d
Out[306]: array([None, None, None], dtype=object)
In [307]: d.fill([])
In [308]: d
Out[308]: array([[], [], []], dtype=object)   # array of lists
In [309]: d[0].append([1,2,3])
In [310]: d
Out[310]: array([[[1, 2, 3]], [[1, 2, 3]], [[1, 2, 3]]], dtype=object)

但是哎呀 - 这些列表都是相同的对象(指针):( 我必须在每个元素中放置不同的列表。现在我可以单独附加到它们。

In [311]: d[...]=[[],[1,2,3],[2]]
In [312]: d
Out[312]: array([[], [1, 2, 3], [2]], dtype=object)
In [313]: d[0].append([2,3])
In [314]: d
Out[314]: array([[[2, 3]], [1, 2, 3], [2]], dtype=object)

我认为你必须硬着头皮使用列表来初始化列表的对象数组。没有捷径:

In [319]: d=np.empty((3,),object)
In [320]: d[...]=[[] for _ in range(3)]
In [321]: d
Out[321]: array([[], [], []], dtype=object)
In [323]: d
Out[323]: array([[], [3], []], dtype=object)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 numpy 中制作“接受”附加的空列表网格? 的相关文章

随机推荐

  • mgcv:如何在predict.gam中使用“排除”参数?

    我有一个结构如下的模型 我想提取预测值 同时忽略随机效应 如指定 predict gam and here 我正在使用exclude争论 但我收到错误 我的错误在哪里 dt lt data frame n1 runif 500 min 0
  • createReadStream 错误:“确定,打开”

    我有以下代码片段 该函数位于针对不同文件多次调用的函数中 var readStream fs createReadStream file readStream on error function err console log err 通常
  • 使用 spring 覆盖属性文件

    我在 Spring 3 1 XML 之一中定义了以下属性文件
  • 如何使用应用程序脚本在 Google 电子表格的单元格内添加 UI?

    我想向 Google 文档电子表格中的特定单元格添加按钮 这应用程序脚本 UI 文档讨论如何添加新面板 但尚不清楚该面板中的 UI 如何附加到特定的行或单元格 是否可以将 UI 添加到特定单元格 或者我们仅限于添加新面板 应用程序 UI 仅
  • TypeError:无效的前景 RGBA 参数

    每次我尝试运行 Pygame 程序时 都会收到此错误 TypeError 无效的前景 RGBA 参数 这是我的代码 你知道为什么吗 text font render b Score dude score 1 0 0 0 as per the
  • ostream:在 cout 或文件上输出的类

    我需要编写一个程序 将其输出到std cout或某个文件 我正在读书这个帖子看看该怎么做 但是我想将 ostream 的管理与main 所以我想写一个类 但我对设计有点困惑 我想到了两个解决方案 公开 子类ostream 这样我就可以拥有o
  • 双向无限 UIScrollView

    我想创建一个无限滚动视图 就像老虎机 但没有分页 当用户向下滚动时 很容易我只需增加 contentSize 和 scrollView 无限滚动 void scrollViewDidScroll UIScrollView theScroll
  • Android中如何检测上传/下载传输速率?

    我正在开发一个上传大量数据的应用程序 我想确定上传的传输速率 以在通知中显示 One post建议使用WifiInfo这不适用于移动数据 Another post建议获取网络类型来估计速度 我对这些帖子的答案不满意 所以我再次询问 我见过显
  • Sendgrid php发送给多个收件人

    我有简单的 sendgrid php 脚本来发送电子邮件 这里唯一的问题是我需要添加更多收件人 因此此代码仅适用于一个收件人 我正在查看官方文档 但无法找到任何有用的信息 有谁知道知道我需要如何以及在此处进行更改以添加更多收件人 电子邮件
  • 使用 SQLite WHERE 子句和 IN 运算符时保持顺序

    考虑以下tbl CREATE TABLE tbl ID INTEGER ticker TEXT desc TEXT INSERT INTO tbl ID ticker desc VALUES 1 GDBR30 30YR 2 GDBR10 1
  • C++ 如何使函数指针指向类方法[重复]

    这个问题在这里已经有答案了 我在创建指向类方法的函数指针时遇到问题 我创建了一个指向非类方法的函数指针 它工作得很好 int foo return 5 int main int pointer foo std cout lt lt poin
  • 如何检测该参数是两个任意类型的元组?

    我实际上正在做的事情更复杂 但归根结底是能够实现函数来检测某个东西是一个元组 无论其元素的类型是什么 这是我的方法 不起作用 请参阅最后一行的评论 func isTuple b Any gt Bool return b is Any Any
  • 当通过 EL 从 bean 获取currencySymbol 时,f:convertNumber 失败

    您好 在我的项目中 我需要可视化货币价值 就我的 f convertNumber 而言 我使用固定的货币符号 一切都很好 但是当我尝试使用如下表达语言获取符号时
  • 如何从角度2的纬度、经度获取完整地址

    我正在使用 Angular 2 google maps 如何使用打字稿从 angular2 谷歌地图中的纬度 经度获取国家 地区和 pin 等地址 这对我有用 getCurrentLocation this mapsAPILoader lo
  • 访问数据库的服务

    好吧 伙计们 我之前确实问过如何创建一种始终在我的应用程序中运行代码的方法 这类似于 iMobeter 或类似的东西检查你的马力 如果它低于最大值 它会每 5 分钟添加一次 有些人告诉我使用听起来不错的服务 问题是 我需要一个始终在后台运行
  • 如何使用 Batch 更新 Firestore 中的 500 多个文档?

    我正在尝试更新一个字段timestamp与Firestore包含超过 500 个文档的集合中的管理时间戳 const batch db batch const serverTimestamp admin firestore FieldVal
  • 一元“*”的类型参数无效(具有“int”)

    我正在解决以下家庭作业问题C 科学家和工程师 Given the following declarations and assignments what do these expressions evaluate to int a1 10
  • 在列表视图上绘画会禁用列表视图项目的重绘

    这是什么原因呢 我重写 OnPaintBackground 并绘制一个字符串 直到我在构造函数中调用它才显示 this SetStyle ControlStyles UserPaint true 但后来我在列表视图中看不到这些项目 为什么以
  • 使用 Json.NET 序列化 Dictionary 中的时间跨度

    我有一个实际上是字典的属性 我在这本字典中保留了许多类型 例如 TimeSpans DateTimes 等 但是序列化和反序列化 TimeSpans 是错误的 它反序列化为字符串 var dict new Dictionary
  • 如何在 numpy 中制作“接受”附加的空列表网格?

    我正在尝试使用 numpy append 但出了问题 它对我来说不再有意义了 有人可以解释为什么我收到错误吗 gt gt gt np array shape 3 0 gt gt gt a gt gt gt a 1 append 3 gt g