当前位置: 首页 > 面试题库 >

这种numpy选择行为的背后是什么?

唐默
2023-03-14
问题内容

在回答这个问题时,我和其他一些人实际上认为是错误的,因为认为以下方法可行:

说一个有

test = [ [ [0], 1 ],
         [ [1], 1 ]
       ]
import numpy as np
nptest = np.array(test)

背后的原因是什么

>>> nptest[:,0]==[1]
array([False, False], dtype=bool)

而有一个

>>> nptest[0,0]==[1],nptest[1,0]==[1]
(False, True)

要么

>>> nptest==[1]
array([[False,  True],
       [False,  True]], dtype=bool)

要么

>>> nptest==1
array([[False,  True],
       [False,  True]], dtype=bool)

是造成尺寸 退化的 原因吗?


问题答案:

nptest 是对象dtype的2D数组,每行的第一个元素是一个列表。

nptest[:, 0]对象dtype的一维数组,其每个元素都是列表。

当您这样做时nptest[:,0]==[1],NumPy不会nptest[:,0]对list的每个元素进行元素比较[1]。它从中创建尽可能高维的数组[1],生成1D数组np.array([1]),然后广播比较,将的每个元素nptest[:,0]与整数1进行比较。

由于innptest[:, 0]中的列表都不等于1,因此结果的所有元素均为False。



 类似资料:
  • 我对编程很陌生,我已经自学了将近一个月了,有谁能给我解释一下我代码中错误的原因吗?在“Total(moneyConv(moneySum*moneyRate))”中出错。行,表示实际和形式的论点在长度上是不同的。我检查了我所有的参数,我觉得很好。多谢!

  • 问题内容: 我看过一些D3代码,它们带有类似这样的模式,用于附加元素: 我真的不明白这个片段。为什么选择null?我对D3的理解方式是,如果要添加圆,则应为: 同样,如果要追加HTML段落,则应该为: 类也是如此:如果将元素添加到类中foo,则应该为。 但是, 确实有效!元素被追加。那么,这是什么意思null呢?我在这里想念什么? 注意:这是一个自我回答的问题,试图提供一个针对该主题的“规范”问答

  • 问题内容: 我在Twitter Bootstrap中看到了这个选择器: 有谁知道这种技术叫什么及其作用? 问题答案: 这是一个属性通配符选择器。在您提供的示例中,它将查找具有CONTAINS类的任何子元素。 因此,请在此示例中选择元素: 您也可以搜索“开头为…” 这将在这样的事情上工作: 和“以…结尾” 这将工作

  • 问题内容: 我碰到了Java行,并对它的输出感到困惑。您能否解释一下此代码背后的逻辑 输出: 问题答案: 好吧,它等效于: 真正地将原始内容显式转换为只是使其调用而不是。 我相信to 转换 实际上首先 要进行隐式加宽转换-就像这样: 这些帮助有用?

  • 我正在浏览的Java8文档,我看到了几个似乎做同样事情的方法。例如: add(E):将指定的元素追加到此列表的末尾 这三个似乎都做同样的事情。我看到和都返回布尔值,表示修改是否成功。 的文档甚至说它与相同,尽管它不返回任何内容。我想我在想为什么这么多冗余?我什么时候会选择一个而不是另一个?

  • 在这个问题的启发下,我写出了测试题: 本程序以普通大小写形式打印: 首先:我解释这种行为是JIT编译器的存在。“预热”后,每个线程的JIT编译器缓存值非字段。对吧? 第二:如果先对或不对,我如何验证这一点? 附注。-我知道打印-选项。 更新:enviroment:Windows 7 64bit,JDK 1.7.0_40-b43(热点)。