2024-03-28 19:51:36 发布
网友
我在看一些代码,我看到:
y = X[class_member_mask & core_samples_mask]
为了它的价值,type(X)=<type 'numpy.ndarray'>和len(X)=150)。你知道吗
type(X)=<type 'numpy.ndarray'>
len(X)=150)
什么是y?这是什么样的“切片”?它是否移除或调整X的某些成员?哪个?为什么?你知道吗
y
我们无法100%确定地从我们看到的代码中判断出发生了什么,但这看起来像一个NumPyadvanced indexing operation。你知道吗
当NumPy数组使用形状相同的布尔数组进行索引时,如下所示:
>>> x = numpy.array([[1, 2], ... [3, 4]]) >>> index_array = numpy.array([[True, False], ... [False, True]]) >>> x[index_array] array([1, 4])
结果是一个元素数组,对应于索引数组中有一个True元素的x的每个位置。元素在结果数组中的出现顺序与它们在x的展开版本中的出现顺序相同。结果不是视图;修改它不会影响x。(这是x和index_array形状不相同时更一般行为的特例,但这里的形状可能相同,完整行为确实很难理解。)
True
x
index_array
&是bitwise and operator。对于布尔型,这与正则and运算符基本相同。对于形状相同的布尔NumPy数组:
&
>>> x = numpy.array([True, False, True]) >>> y = numpy.array([True, True, False]) >>> x & y array([ True, False, False], dtype=bool)
它遍历并and相应的元素来创建一个结果数组。(同样,这是一个更一般行为的特例,但解释完整的概括性将使文章长度增加四倍。)
and
综合起来,我们可以猜测class_member_mask和core_samples_mask是表示X的哪些元素满足某些条件的布尔数组。class_member_mask & core_samples_mask然后创建一个数组,表示X中符合两个条件的元素,并且y = X[class_member_mask & core_samples_mask]选择符合这两个条件的X的所有元素。你知道吗
class_member_mask
core_samples_mask
X
class_member_mask & core_samples_mask
我们无法100%确定地从我们看到的代码中判断出发生了什么,但这看起来像一个NumPyadvanced indexing operation。你知道吗
当NumPy数组使用形状相同的布尔数组进行索引时,如下所示:
结果是一个元素数组,对应于索引数组中有一个
True
元素的x
的每个位置。元素在结果数组中的出现顺序与它们在x
的展开版本中的出现顺序相同。结果不是视图;修改它不会影响x
。(这是x
和index_array
形状不相同时更一般行为的特例,但这里的形状可能相同,完整行为确实很难理解。)&
是bitwise and operator。对于布尔型,这与正则and运算符基本相同。对于形状相同的布尔NumPy数组:它遍历并
and
相应的元素来创建一个结果数组。(同样,这是一个更一般行为的特例,但解释完整的概括性将使文章长度增加四倍。)综合起来,我们可以猜测
class_member_mask
和core_samples_mask
是表示X
的哪些元素满足某些条件的布尔数组。class_member_mask & core_samples_mask
然后创建一个数组,表示X
中符合两个条件的元素,并且y = X[class_member_mask & core_samples_mask]
选择符合这两个条件的X
的所有元素。你知道吗相关问题 更多 >
编程相关推荐