use*_*176 3 python arrays int replace numpy
我有一个包含超过 40000 个元素的大数组
a = ['15', '12', '', 18909, ...., '8989', '', '90789', '8']
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种简单的方法将空的“”值替换为“0”,以便我可以使用 Numpy 操作数组中的数据。
然后我将使用以下方法将数组中的元素转换为整数
a = map(int, a)
Run Code Online (Sandbox Code Playgroud)
这样我就可以在 numpy 中找到数组的平均值
a_mean = np.mean(a)
Run Code Online (Sandbox Code Playgroud)
我的问题是我无法转换为缺少数字的数组中的整数来获取平均值。
您可以创建一个小函数来精确地按照您想要的方式转换单个值,例如:
def to_int(x):
try:
return int(x)
except ValueError:
return 0
Run Code Online (Sandbox Code Playgroud)
可以与以下命令一起使用map:
In [22]: a = ['15', '12', '', 18909, '8989', '90789', '8']
map(to_int, a)
Out[23]: [15, 12, 0, 18909, 8989, 90789, 8]
Run Code Online (Sandbox Code Playgroud)
在列表理解中:
In [25]: np.array([to_int(x) for x in a])
Out[25]: array([ 15, 12, 0, 18909, 8989, 90789, 8])
Run Code Online (Sandbox Code Playgroud)
或者在生成器表达式中直接创建 numpy 数组:
In [27]: np.fromiter((to_int(x) for x in a), dtype=int)
Out[27]: array([ 15, 12, 0, 18909, 8989, 90789, 8])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2823 次 |
| 最近记录: |