我有一个Pandas相框。
data = {'col_1': ['a', 'b'], 'col_2': ['b', 'c']}
df = pd.DataFrame(data)
字符串
我想把它转换成numpy中数据的稀疏表示,例如。
[[[1, 0], [0, 0]], [[0, 1], [1, 0]], [[0, 0], [0, 1]]]
型
其中每个2x2矩阵代表我的Pandas图中“a”、“B”和“c”的位置。
我可以通过一些杂乱的操作来达到预期的结果:
boolean_matrix = pd.get_dummies(df, prefix='', prefix_sep='').groupby(level=0, axis=1).sum()
boolean_matrix = boolean_matrix.values.tolist()
boolean_matrix = [[[int(i == j) for j in range(len(boolean_matrix[0]))] for i in row] for row in boolean_matrix]
print(boolean_matrix)
型
但是我不敢相信这是一个标准的方法来做一个很常见的操作,有没有内置的方法(pandas,polars,numpy,tensorflow)可以做到这一点?
1条答案
按热度按时间cyvaqqii1#
让我们使用numpy广播和
unique
:字符串
或者,对于特定订单:
型
输出量:
型