gpt4 book ai didi

python - 这种 numpy 选择行为背后发生了什么?

转载 作者:太空狗 更新时间:2023-10-29 21:54:13 25 4
gpt4 key购买 nike

回答这个 question ,其他一些人和我实际上是错误的,认为以下方法可行:

说一个有

test = [ [ [0], 1 ],
[ [1], 1 ]
]
import numpy as np
nptest = np.array(test)

背后的原因是什么

>>> nptest[:,0]==[1]
array([False, False], dtype=bool)

虽然有

>>> nptest[0,0]==[1],nptest[1,0]==[1]
(False, True)


>>> nptest==[1]
array([[False, True],
[False, True]], dtype=bool)

>>> nptest==1
array([[False, True],
[False, True]], dtype=bool)

是否是维度方面的退化导致的。

最佳答案

nptest 是一个 object dtype 的二维数组,每行的第一个元素是一个列表。

nptest[:, 0] 是对象数据类型的一维数组,每个元素都是列表。

当您执行 nptest[:,0]==[1] 时,NumPy 不会对 nptest[:,0] 的每个元素执行逐元素比较列表 [1]。它从 [1] 创建一个尽可能高的数组,生成一维数组 np.array([1]),然后是 broadcasts比较,将 nptest[:,0] 的每个元素与整数 1 进行比较。

由于nptest[:, 0]中没有列表等于1,所以结果的所有元素都是False。

关于python - 这种 numpy 选择行为背后发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45426587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com