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

将Python序列转换为NumPy数组,填充缺失值

孙阳舒
2023-03-14
问题内容

变长 列表的Python序列隐式转换为NumPy数组会导致该数组属于 object 类型。

v = [[1], [1, 2]]
np.array(v)
>>> array([[1], [1, 2]], dtype=object)

尝试强制使用其他类型将导致异常

np.array(v, dtype=np.int32)
ValueError: setting an array element with a sequence.

通过使用给定的占位符填充“缺失”值来获取类型为int32的密集NumPy数组的最有效方法是什么?

从我的示例序列中v,如果占位符为0,我想得到类似的结果

array([[1, 0], [1, 2]], dtype=int32)

问题答案:

您可以使用itertools.zip_longest:

import itertools
np.array(list(itertools.zip_longest(*v, fillvalue=0))).T
Out: 
array([[1, 0],
       [1, 2]])

注意:对于Python
2,它是itertools.izip_longest。



 类似资料:
  • 我有一个缺少“SNAP_ID”值的数据帧。我想根据前一个非缺失值(lag()?)的序列,用浮点值填充缺失值。如果可能的话,我真的想只用dplyr来实现这一点。 假设: 永远不会有丢失的数据,因为第一行或最后一行我根据数据集的最小值和最大值之间的缺失天数生成缺失的日期 数据集中可能存在多个空白 当前数据: 我想要实现的目标: 作为数据帧: 这是我实现这个目标的尝试,但它只适用于第一个缺失的值: 来自

  • 问题内容: 假设我有一个彩色图像,这自然将由python中的3维数组表示,例如形状(nxmx 3),并将其称为img。 我想要一个新的二维数组,将其称为“ narray”,其形状为(3,nxm),以便该数组的每一行分别包含R,G和B通道的“扁平化”版本。而且,它应该具有这样的属性:我可以通过类似以下方法轻松地重建任何原始通道 问题是如何从“ img”构造“ narray”?简单的img.resha

  • 问题内容: 这应该很简单,但是我发现的最接近的内容是这篇文章: pandas:填充组中的缺失值,但我仍然无法解决我的问题。 假设我有以下数据框 我想在每个“名称”组中用平均值填写,即 我不确定要去哪里: 问题答案: 一种方法是使用:

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

  • 问题内容: 我使用一个外部模块(libsvm),该模块不支持numpy数组,仅支持元组,列表和字典。但是我的数据是二维二维数组。我如何以pythonic方式转换它,也就是没有循环。 问题答案: 您可以简单地将矩阵转换为,以证明:

  • 问题内容: 假设我有; 我尝试转换; 我现在正在vstack上通过迭代来解决它,但是对于特别大的LIST来说确实很慢 您对最佳有效方法有何建议? 问题答案: 通常,您可以沿任意轴连接整个数组序列: 但你 也 必须对列表中的形状和每个阵列的维度担心(用于2维3x5的输出,你需要确保它们都是2维正由-5阵列的话)。如果要将一维数组连接为二维输出的行,则需要扩展其维数。 正如Jorge的答案所指出的那样