如何创build一个所有True或所有False的numpy数组?

在Python中,如何创build一个填充所有True或全部False的任意形状的numpy数组?

numpy已经允许非常容易地创build全部或全部零的数组:

例如np.ones((2, 2))np.zeros((2, 2))

由于TrueFalse在Python中分别表示为10 ,所以我们只需要使用可选的dtype参数将此数组作为布尔值来转换,然后我们就完成了。

np.ones((2, 2), dtype=bool)

收益:

 array([[ True, True], [ True, True]], dtype=bool) 
 numpy.full((2,2), True, dtype=bool) 

oneszeros ,分别创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.fullnp.zerosnp.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