numpy创建fal的布尔数组

2024-03-28 15:20:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用np.empty初始化一个Boolean数组

init_arr = empty(5)
init_arr.fill(False)

但我有

array([0., 0., 0., 0., 0.])

然后我创建一个pd.Series

dummy_ser = pd.Series(data=init_arr)

这就是原因

0       0
1       0
2       0
3       0
4       0

我试图用False作为初始化值来初始化一个不同长度的布尔序列。我想知道做这件事最好的方法是什么。你知道吗

我正在使用Python 3.5.2Numpy 1.15.4。你知道吗


Tags: falsedatainitnp原因数组arrayfill
3条回答

你可以做:

np.zeros(5).astype(bool)

这是因为empty()函数创建了一个浮点数组:

In [14]: np.empty(5).dtype
Out[14]: dtype('float64')

有很多方法可以解决这个问题,将dtype=bool提供给empty()就是其中之一。你知道吗

但我会创建一个False数组,如下所示:

In [17]: np.full(5, False)
Out[17]: array([False, False, False, False, False], dtype=bool)

这将起作用:

>>> import numpy as np
>>> np.broadcast_to(False, (2, 2))
array([[ False,  False],
   [ False,  False]], dtype=bool)

相关问题 更多 >