如何创build一个所有True或所有False的numpy数组?
在Python中,如何创build一个填充所有True或全部False的任意形状的numpy数组?
numpy已经允许非常容易地创build全部或全部零的数组:
例如np.ones((2, 2))
或np.zeros((2, 2))
由于True
和False
在Python中分别表示为1
和0
,所以我们只需要使用可选的dtype
参数将此数组作为布尔值来转换,然后我们就完成了。
np.ones((2, 2), dtype=bool)
收益:
array([[ True, True], [ True, True]], dtype=bool)
numpy.full((2,2), True, dtype=bool)
ones
和zeros
,分别创build一个1和零的数组,采取一个可选的dtype
参数:
>>> numpy.ones((2, 2), dtype=bool) array([[ True, True], [ True, True]], dtype=bool) >>> numpy.zeros((2, 2), dtype=bool) array([[False, False], [False, False]], dtype=bool)
如果它不必是可写的,则可以使用np.broadcast_to
创build这样一个数组:
>>> import numpy as np >>> np.broadcast_to(True, (2, 5)) array([[ True, True, True, True, True], [ True, True, True, True, True]], dtype=bool)
如果你需要它可写,你也可以创build一个空的数组,并fill
它自己:
>>> arr = np.empty((2, 5), dtype=bool) >>> arr.fill(1) >>> arr array([[ True, True, True, True, True], [ True, True, True, True, True]], dtype=bool)
这些方法只是替代build议。 一般来说,你应该坚持使用np.full
, np.zeros
或np.ones
类似于其他答案的build议。
>>> a = numpy.full((2,4), True, dtype=bool) >>> a[1][3] True >>> a array([[ True, True, True, True], [ True, True, True, True]], dtype=bool)
numpy.full(大小,标量值,types)。 还有其他的参数可以通过,关于这个文档,请查看https://docs.scipy.org/doc/numpy/reference/generated/numpy.full.html