用空格替换 numpy 数组中的特殊字符

replacing special characters in a numpy array with blanks

我有一个列表列表(见下文),其中有?缺少值的地方:

([[1,2,3,4],
 [5,6,7,8],
 [9,?,11,12]])

我想使用 np.array(test) 将其转换为 numpy 数组,但是, ?值引起了问题。我想要做的是替换?使用空白 space '' 然后转换为一个 numpy 数组,这样我就有了以下内容

所以我最终得到以下数组:

([[1,2,3,4],
 [5,6,7,8],
 [9,,11,12]])

对于单个列表,您可以执行以下操作:

>>> myList = [4, 5, '?', 6]
>>> myNewList = [i if str(i).isdigit() else '' for i in myList]
>>> myNewList
[4,5,'',6]

所以获取该信息并使其与列表列表一起使用。

使用列表理解:

matrix = ...

new_matrix = [["" if not isinstance(x,int) else x for x in sublist] for sublist in matrix]

这是一种使用循环查找无法转换为整数的元素并将其替换为空格的方法。

import numpy as np

preArray = ([[1,2,3,4],
            [5,6,7,8],
            [9,'?',11,12]])

newPreArray = []
for row in preArray:
    newRow = []

    for val in row:
        try:
            int(val)
            newRow.append(val)
        except:
            newRow.append('')

    newPreArray.append(newRow)

array = np.array(newPreArray)

Python 没有类型 ?

检查这个

a =?
print(type(a))

以上代码会导致语法错误

必须是“?”。

如果是这种情况,那么您可以使用

list1 = ([[1,2,3,4],
          [5,6,7,8],
          [9,?,11,12]])

for i1, ele in enumerate(list1):
  for i2, x in enumerate(ele):
    if x == "?":
      list1[i1][i2] = ""
print(list1)