我有一个带整数值的NumPy数组.矩阵的值在矩阵中从0到最大元素(换句话说,在其中呈现的从0到最大数据元素的所有数字).我需要构建有效(有效的快速全矢量化解决方案)来搜索每行中的元素数量,并根据矩阵值对其进行编码.
我找不到类似的问题,或者以某种方式帮助解决这个问题的问题.
所以,如果我有这个data输入:
# shape is (N0=4, m0=4)
1 1 0 4
2 4 2 1
1 2 3 5
4 4 4 1
Run Code Online (Sandbox Code Playgroud)
期望的输出是:
# shape(N=N0, m=data.max()+1):
1 2 0 0 1 0
0 1 2 0 1 0
0 1 1 1 0 1
0 1 0 0 3 0
Run Code Online (Sandbox Code Playgroud)
我知道如何通过简单地计算逐行data 迭代的每一行中的唯一值来解决这个问题,然后结合考虑到data数组中所有可能值的结果.
在使用NumPy进行矢量化时,关键问题是逐个搜索每个数字很慢并且假设有很多唯一数字,这不是有效的解决方案.通常,两者N和唯一数字计数相当大(顺便说一下,N似乎比唯一数字计数大).
有人有好主意吗?)