获取行索引,其中每列显示1

时间:2019-08-26 11:17:47

标签: arrays numpy python-3.7

我有一个二进制numpy数组,并且该数组在某些列中包含一个1或完整的零,即该数组的行总和是一个二进制向量,如

A = array([[0, 0, 0, 1, 0, 1],
           [0, 0, 0, 0, 0, 0],
           [0, 1, 0, 0, 0, 0],
           [1, 0, 1, 0, 0, 0]])

我想找到在每一列中出现1的行索引。如果每一列都没有索引,则无需返回任何索引。

在上述情况下,我希望结果为

[3, 2, 3, 0, 0]

numpy,其中的结果不可使用

2 个答案:

答案 0 :(得分:3)

您可以在A的转置上使用where

np.where(A.T)[1]
# array([3, 2, 3, 0, 0])

答案 1 :(得分:1)

尝试一下:

// CREATING A HTTP SERVER USING HTTP MODULE 
// request is the http call, response is the text or file back..
const http_mod = require("http");
const file_sys = require("fs");
const server = http_mod.createServer((req, res) => {

    if (req.url === '/index'){

        // this is the response     
        res.write("hello world from index");
    }

    else if (req.url === '/check'){

        // this is the response     
        res.write("hello world from check");
    }

    else if (req.url === '/'){

        // this is the response     
        // res.write("hello world from main");

        // let know what data to expect 
        // you can use http status codes to explicitly state meaning of status code 
        const html = file_sys.readFileSync("./static/test.html");
        res.writeHead(200, {'Content-type' : 'text/html'});
        res.write(html)

    }

    // .end sends the response 
    res.end();

// port to listen on 
}).listen("3000");

这将得到rows, cols = np.where(A==1) result = rows[np.argsort(cols)] 。 只有在您假设每列最多出现1个情况下,该方法才有效。