如何将numpy全是True和False的array转换成1和0?

2021年1月9日 / 13次阅读 / Last Modified 2021年1月10日
NumPy

我是在处理ReLU函数的导数的时候,遇到的这个问题,有两种方法可以做这种转换。

使用 + 0 的方法

在全是True和False的np array上加0,就能够将True变成1,False变成0:

>>> a
array([[0],
       [1],
       [2],
       [3],
       [4],
       [5],
       [6],
       [7],
       [8],
       [9]])
>>> b = a>3
>>> b
array([[False],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [ True],
       [ True],
       [ True],
       [ True]])
>>> c = b + 0
>>> c
array([[0],
       [0],
       [0],
       [0],
       [1],
       [1],
       [1],
       [1],
       [1],
       [1]])

+0 转成 np.int型,还可以 + 0.0,转成 np.float型。

使用astype转换

直接上代码:

>>> b
array([[False],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [ True],
       [ True],
       [ True],
       [ True]])
>>> b.astype(np.int)
array([[0],
       [0],
       [0],
       [0],
       [1],
       [1],
       [1],
       [1],
       [1],
       [1]])

除了np.int,还可以直接转换成np.float,这样可能更符合数据的normalization的要求。

用astype的方法,感觉语义上更清晰。

-- EOF --

本文链接:https://www.pynote.net/archives/3154

留言区

邮箱地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top