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

创建用NaN填充的Numpy矩阵

虞航
2023-03-14
问题内容

我有以下代码:

r = numpy.zeros(shape = (width, height, 9))

它创建一个width x height x 9填充零的矩阵。相反,我想知道是否有一种函数或方法可以将它们初始化为NaNs,而方法很简单。


问题答案:

您很少需要在numpy中进行矢量操作循环。您可以创建一个未初始化的数组并立即分配给所有条目:

>>> a = numpy.empty((3,3,))
>>> a[:] = numpy.nan
>>> a
array([[ NaN,  NaN,  NaN],
       [ NaN,  NaN,  NaN],
       [ NaN,  NaN,  NaN]])

我已经在a[:] = numpy.nan这里和a.fill(numpy.nan)Blaenk发布的时间安排了时间:

$ python -mtimeit "import numpy as np; a = np.empty((100,100));" "a.fill(np.nan)"
10000 loops, best of 3: 54.3 usec per loop
$ python -mtimeit "import numpy as np; a = np.empty((100,100));" "a[:] = np.nan" 
10000 loops, best of 3: 88.8 usec per loop

时序显示优先选择ndarray.fill(..)作为更快的替代方案。OTOH,我喜欢numpy的便捷实现,在该实现中您可以同时为整个slice分配值,代码的意图非常明确。

请注意,ndarray.fill它是就地执行其操作,因此numpy.empty((3,3,)).fill(numpy.nan)将改为return
None



 类似资料:
  • 问题内容: 是否可以从函数构造矩阵?在这种情况下,该函数特别是两个向量的绝对差:。一个使用常规python的最小工作示例: 给予: 有一个看起来像这样的构造会很好: 我可以在其中传递带有参数的输入函数,并保留numpy的速度优势。 问题答案: 我建议看看numpy的广播功能: http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html

  • 第一个类称为FileReader,它读取一个逐行写入的txt文件,我们需要的每个字段都用“;”分隔,例如(“哥伦比亚大学”;“美国”;78.86;2012)。每行包含2个字符串(大学名和国家)和2个数字(分数和年份)。FileReader类在读取txt文件后,在ArrayList中返回其内容。 该作业的第二个类称为UniversityScores,它有4个字段(uniname、country、sc

  • 我如何在一行中创建和初始化一个非常值的特征矩阵?下面是一个示例, 或

  • 问题内容: 在数组末尾加零的更Python方式是什么? 在我的实际用例中,实际上我想将数组填充到最接近的1024倍数。例如:1342 => 2048,3000 => 3072 问题答案: 使用mode可以满足您的需要,在这里我们可以传递一个元组作为第二个参数来告诉每个大小要填充多少个零,例如a将在左边填充 2个 零,在右边填充 3个 零: 给出为: 也可以通过将元组的元组作为填充宽度来填充2D n

  • 问题内容: 示例问题 作为一个简单的示例,请考虑以下定义的numpy数组: 其中,像这样在控制台输出: 我现在想按行“向前填充” array中的值。我的意思是用左侧最接近的有效值替换每个值。所需的结果如下所示: 到目前为止尝试过 我试过使用for循环: 我还尝试过使用熊猫数据框作为中间步骤(因为熊猫数据框具有非常整洁的内置方法用于正向填充): 以上两种策略都能产生预期的结果,但是我一直在想:仅使用

  • 问题内容: 我正在创建一个要在网页上显示的表,并且该表是由MySQL数据库中的数据填充的。我正在尝试做一些让我感到困难的事情。 首先,我试图通过JavaScript调用HTML中单独文件中存在的PHP代码。我认为我的工作正常,但是我不确定100%是否正确(因为表格不会显示)。我认为它工作正常,因为该表的 某些 代码(在PHP文件中)显示在FireBug中。 其次,我正在尝试使行交替显示颜色以便于查