import numpy as np
a=np.zeros(5)
a[0]=22
a[1]=33
a[2]=10
a[3]=12
a[4]=49
var=np.where(a==10)
print(var)
我们正在上面代码的输出如下:给出数组元素获取numpy的阵列的具体指标为整数
(array([2], dtype=int64),)
但是,我们希望得到指数值仅 (例如,2这里)整数,而不是整条线。
import numpy as np
a=np.zeros(5)
a[0]=22
a[1]=33
a[2]=10
a[3]=12
a[4]=49
var=np.where(a==10)
print(var)
我们正在上面代码的输出如下:给出数组元素获取numpy的阵列的具体指标为整数
(array([2], dtype=int64),)
但是,我们希望得到指数值仅 (例如,2这里)整数,而不是整条线。
嗯,这很简单:
index = var[0][0]
谢谢。有用 ! – user3701435
对不起,它不适用于大小为15000的大型阵列。错误我得到: FutureWarning:elementwise comparison failed;返回标量,但将来会执行元素比较 var = np.where(Keys == 10) – user3701435
这是一个不同的错误。 – Sven
如果使用np.where
,我想获得该指数将是np.where(a==10)[0][0]
的唯一途径。
对不起,它不适用于大小为15000的大型阵列。错误我得到: FutureWarning:元素比较失败;返回标量,但将来会执行基于元素的比较 var = np.where(Keys == 10) – user3701435
>>> var [0][0]
2
但是如果查找项目具有重复条目,var [0]可能是一个列表。
numpy.where(condition)的结果是ndarray或ndarray的元组。 你的结果也是一个元组。打印结果的更好的做法是将结果元组转换为单维数组,然后打印该数组的每个值。
import numpy as np
a = np.array([22,33,10,12,49]) #array created with values
var = np.where(a==10) #condition to check, resulting in tuple with location of matching values
var = np.asarray(var).ravel() #asarray(var) converts var in array and ravel() converts that into singular array.
for v in var:
print(v)
对不起,它不适用于大型数组大小为15000.我得到的错误: FutureWarning:elementwise comparison失败;取而代之的是返回标量,但将来会执行元素比较 var = np.where(Keys == 10) – user3701435
好的,所以你需要了解返回的对象是什么。玩它,做var [0],看看出了什么,然后继续玩索引。 – elelias
对不起,它不适用于大小为15000的大型阵列。错误我得到: FutureWarning:元素比较失败;而不是返回标量,但将来会执行元素比较 var = np.where(Keys == 10) – user3701435