当前位置: 首页 > 知识库问答 >
问题:

fromfunction创建NumPy错误

茹正初
2023-03-14

代码:

n=3
x=np.fromfunction(lambda i,j: (i==1)and(j==1), (n,n), dtype=int)

导致"ValueError:具有多个元素的数组的真值不明确。使用a.any()或a.all()”

有什么问题?

共有1个答案

夏青青
2023-03-14

这些文件具有误导性。函数不会使用每个单元格的索引重复调用;它被调用一次,索引数组一次表示所有单元格的索引。此函数调用的返回值直接返回:

>>> numpy.fromfunction(lambda *args: 1, (2, 2))
1
>>> numpy.fromfunction(lambda *args: args, (2, 2))
(array([[ 0.,  0.],
       [ 1.,  1.]]), array([[ 0.,  1.],
       [ 0.,  1.]]))

你需要改变你的功能来这样操作:

lambda i, j: (i==1) & (j==1)
#                   ^ elementwise bitwise and
 类似资料:
  • 主要内容:numpy.empty(),numpy.zeros(),numpy.ones(),numpy.asarray(),numpy.frombuffer(),numpy.fromiter()在《 NumPy Ndarray对象》一节,介绍了创建 ndarray 数组的基本方法,除了使用 array() 方法外,NumPy 还提供了其他创建 ndarray 数组的方法。本节对这些常用方法做简单介绍。 numpy.empty() numpy.empty() 创建未初始化的数组,可以指定创建数组的

  • 问题内容: 我正在使用numpy并尝试创建一个巨大的矩阵。这样做时,我收到内存错误 由于矩阵并不重要,因此我将向您展示如何轻松重现错误的方法。 毫不奇怪,这把我扔了 我想讲两件事: 我真的需要创建和使用一个大矩阵 我认为我有足够的RAM来处理此矩阵(我有24 Gb或RAM) 有没有一种简单的方法可以处理numpy中的大型矩阵? 为了安全起见,我之前阅读过这些帖子(听起来很相似): 使用Python

  • 主要内容:1. numpy.arange(),2. numpy.linspace(),3. numpy.logspace所谓区间数组,是指数组元素的取值位于某个范围内,并且数组元素之间可能会呈现某种规律,比如等比数列、递增、递减等。 为了方便科学计算,Python NumPy 支持创建区间数组。 1. numpy.arange() 在 NumPy 中,您可以使用 arange() 来创建给定数值范围的数组,语法格式如下: numpy.arange(start, stop, step, dtype

  • 在数组的属性和方法这一小节中我们学习到了如何查看数组的大小、维数(秩)、元素的数据类型、每个元素的大小等等。这一小节将详述如何从数值范围创建特殊数组,比如指定间隔的等差数列型数组、等比数列型数组等。 1. 创建等间隔序列数组 通常定义一个等间隔序列数组(即等差数组),需要指定某些具体要素,例如起始值、终止值、步长、样本数量等。主要功能类似于 Python 内置的 range 函数,但是返回的是一个

  • 译者:cangyunye 作者: Adam Paszke 修订者: Adam Dziedzic 在这个教程里,我们要完成两个任务: 创建一个无参神经网络层。 这里需要调用numpy作为实现的一部分。 创建一个权重自主优化的伸进网络层。 这里需要调用Scipy作为实现的一部分。 import torch from torch.autograd import Function 无参数示例 这一层并

  • 问题内容: 创建数组时,NumPy非常有用。如果for的第一个参数具有and方法,则根据它们可能是有效序列使用它们。 不幸的是,我想创建一个包含没有NumPy是“有用的”的数组。 分解为一个最小的示例,该类将如下所示: 如果“可迭代对象”的长度不同,那么一切都很好,而我得到的结果恰好是我想要的: 但是NumPy会创建一个多维数组,如果它们恰好具有相同的长度: 不幸的是,只有一个参数,所以我想知道是