用 0 填充空白列 space

Filling blank column space with 0

我正在尝试用 0 替换我的 txt 文件中的空白列 space。

  1. 2 6
  2. 4 8
  3. 6

我尝试了以下方法。

import numpy as np
data=np.loadtxt('/Users/Hrihaan/Desktop/A_1.txt')
data[data==''] = '0'

收到此消息:ValueError:第 3 行的列数错误。

我的值不是逗号分隔的,所以我也尝试了以下方法。

data[data== ] = 0

此时收到的错误是不同的:SyntaxError: invalid syntax

我的预期输出是这样的:

  1. 2 6
  2. 4 8
  3. 6 0

如有任何建议,我们将不胜感激。

numpy.loadtxt 文档建议(在注释中):

This function aims to be a fast reader for simply formatted files. The genfromtxt function provides more sophisticated handling of, e.g., lines with missing values.

但是,处理 genfromtxt 中的 "missing values" 并用 "filler values" 替换它们仅适用于已知的 "missing value",例如 x数字的位置。

那不是你的情况。您有一个缺少字段的文件,这些 numpy 方法无法处理它。您可以手动解析和加载文件,或者,如果可以的话,使用 pandas.read_table,如下所示:

>>> import pandas as pd
>>> pd.read_table('/path/to/file', dtype=float, header=None, sep='\s+').fillna(0).values
array([[ 2.,  6.],
       [ 4.,  8.],
       [ 6.,  0.]])

read_table() 将用 NaN 替换缺失值,我们可以用 fillna 方法将它们替换为零。底层 numpy.array 可通过 .values.

访问