如何根据 Numpy 数组的内容替换其特定条目

问题描述 投票:0回答:1

假设我有一个由 ndarray 组成的简单矩阵(只是部分数据的示例):

import numpy as np
a = np.asarray([['1.0', 'Miami'],
   ['2.0', 'Boston'],
   ['1.4', 'Miami']]) 

我想在这个复杂的数据集中进行数据分析;) - 我想将“迈阿密”转换为 0,将波士顿转换为 1,以便使用真正奇特的 ML 算法。

在 Python 中完成此任务的好方法是什么?
(我并不是要求明显的迭代和使用字典/ if 语句来替换条目),但如果有更好的方法使用 NumPy 或本机 Python 来做到这一点,我会要求更多。

python numpy
1个回答
2
投票

pandas 是一个很好的工具。
首先将数组转换为 DataFrame:

In [11]: import pandas as pd

In [12]: df = pd.DataFrame(a, columns=['value', 'city'])

然后替换城市列中的条目:

In [13]: df.city = df.city.replace({'Miami': 0, 'Boston': 1})

In [14]: df
Out[14]:
  value city
0   1.0    0
1   2.0    1
2   1.4    0
© www.soinside.com 2019 - 2024. All rights reserved.