Python Numpy数组更新命令说明

Python Numpy数组更新命令说明,python,arrays,numpy,Python,Arrays,Numpy,该操作在技术上如何命名,以及它允许哪些其他功能: Z[1:-1,1:-1][birth | survive]=1。其中Z是4x4数组,而birth和survive是相同大小的布尔数组。我了解此代码的作用,但想知道此操作是如何调用的,以及我还可以用它做些什么(谈论后一部分[birth | survive])。管道|。因此,birth | survive相当于np.bitwise_或(birth,survive)。大概birth和survive是布尔数组,因此输出是一个布尔数组,具有简单的或行为:

该操作在技术上如何命名,以及它允许哪些其他功能:


Z[1:-1,1:-1][birth | survive]=1
。其中
Z
4x4
数组,而birth和survive是相同大小的布尔数组。我了解此代码的作用,但想知道此操作是如何调用的,以及我还可以用它做些什么(谈论后一部分
[birth | survive]
)。

管道
|
。因此,
birth | survive
相当于
np.bitwise_或(birth,survive)
。大概
birth
survive
是布尔数组,因此输出是一个布尔数组,具有简单的
行为:

a = np.array([True, True, False, False])
b = np.array([True, False, False, True])
a|b
# array([ True,  True, False,  True], dtype=bool)
对于整数,将考虑每一位,并返回一个整数数组,其中二进制表示法中的每一位都已
。对于其行为有更好的解释,下面有一些示例


一旦您从
birth | survive
创建了布尔数组,您就可以使用它对
Z
数组进行一次转换。最简单的是,这可以通过以下方式显示:

a = np.array([1,2,3])
b = np.array([True, False, True])
a[b] # the elements of a where b is True
# array([1, 3])
由于它位于赋值的左侧,python将把值
1
赋值给
Z
中的每个点,其中
birth
survive
为True:

a[b] = 99
a
# array([99,  2, 99])

在左侧使用双索引时,请确保第一个索引生成的是
视图
,而不是
副本
。布尔索引只有在紧靠
=
之前时才起作用。