我举了三个例子,但还是没搞懂,请问这是什么意思呢?求猴友们解答!
^符号表示按位异或操作,对于两个二进制数,如果两个对应位上的数字相同,则该位的结果为0,否则为1
举个例子,对于两个NumPy数组a和b
import numpy as np
a = np.array([9, 12, 17])
b = np.array([4, 6, 19])
c = a ^ b
print(c)
这里的按位异或操作是针对每个数组元素的二进制表示进行的。在这个例子中,9的二进制表示是1001,4的二进制表示是0100。按位异或操作的结果是1101,对应的十进制数是13。所以,c中的第一个元素是13
输出结果为:
array([13, 10, 2])
不知道你这个问题是否已经解决, 如果还没有解决的话:a=np.arange(12).reshape(3,4) a
array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]])
b1=np.array([False,True,True]) b1
array([False, True, True])
b2=np.array([True,False,True,False]) b2
array([ True, False, True, False])
a[b1,:]
array([[ 4, 5, 6, 7], [ 8, 9, 10, 11]])
注意一维数组的长度必须和你想要切片的维度或轴的长度一致,在之前的例子中,b1是一个秩为1长度为三的数组(a的行数),b2(长度为4)与a的第二秩(列)相一致。