python - Numpy 二进制矩阵到染色体

标签 python numpy

我有一个形状为 N,M 的二进制矩阵,我想要一种有效的方法将其转换为染色体,也就是说,给定一行我需要一个函数返回非零元素的索引,例如给定行 [1,1,0,0,0,0,0,0,1] 函数应返回 [0 ,1,8],例如,这可以使用 np.flatnonzero 来完成。例如,我需要将此转换应用于所有行并返回表示二进制矩阵的展平向量

P = np.array([[1,1,0,0,0,0,0,0,1], [0,0,1,1,1,1,0,0, 0], [0,0,0,0,0,0,1,1,0]])

应转换为[018234567]

最佳答案

您可以使用非平面版本 np.nonzero 。使用矩阵,这将为您提供一个元组,其中分别包含行和列的数组,您需要从中获取列:

P = np.array([[1,1,0,0,0,0,0,0,1], [0,0,1,1,1,1,0,0,0], [0,0,0,0,0,0,1,1,0]])

rows, col = np.nonzero(P)

print(col)
# [0 1 8 2 3 4 5 6 7]

关于python - Numpy 二进制矩阵到染色体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68531609/

相关文章:

python - 大型 Numpy Scipy CSR 矩阵,按行操作

python - NumPy 使用 reshape 函数 reshape 数组

python - 循环 Pandas Dataframe 以生成虚拟变量(1 或 0 输入)的有效方法

python - 自动创建未分组条形图的功能

python - 矢量化可以应用于由两个或多个函数定义的函数 Z= f(X,Y)

python - 返回非 json 对象作为 lambda 响应

python - 使用公式更新单元格值会导致带有 Sheets API 的撇号前缀

python - Numpy/matplotlib - 绘制线性回归会产生错误的斜率

python - 如何比较 "peewee.DateField"和 "datatime.date"?

python - 地层挖掘代理错误 - 无法解码消息