python - ndarray.item(arg) 和 ndarry[arg] 有什么区别?

标签 python numpy

我读了Docs , 但仍然不太了解 item 的区别和用例。

但最近我发现只有 item 起作用的地方:

a = np.array(100) # a has shape ()!
a.item() # or a.item(0)

这是从 a 中获取值的唯一方法,a[0] 不起作用。

最佳答案

ndarray.item 允许您使用平面索引来解释数组,而不是使用 [] 表示法。这允许你做这样的事情:

import numpy as np

a = np.arange(16).reshape((4,4))

print(a)
#[[ 0  1  2  3]
# [ 4  5  6  7]
# [ 8  9 10 11]
# [12 13 14 15]]

print(a[2,2]) # "Normal" indexing, taking the 3rd element from the 3rd row
# 10

print(a.item(12)) # Take the 12th element from the array, equal to [3,0]
# 12

它还允许您轻松传递索引元组,如下所示:

print(a.item((1,1))) # Equivalent to a[1,1]
# 5

最后,正如您在问题中提到的,这是一种将 size = 1 的数组元素作为 Python 标量获取的方法。请注意,这与 numpy 标量不同,例如如果 a = np.array([1.0], dtype=np.float32) 那么 type(a [0]) != 类型(a.item(0))

b = np.array(3.14159)

print(b, type(b))
# 3.14159 <class 'numpy.ndarray'>

print(b.item(), type(b.item()))
# 3.14159 <class 'float'>

关于python - ndarray.item(arg) 和 ndarry[arg] 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28192810/

相关文章:

python - 一旦 Pandas 达到阈值(最小/最大)值,就删除数据框中的值

python - 如何在 Numpy 中使用数组作为它自己的索引

python LDA scikit learn 抛出 ValueError

python - 将文件转换为字典

python - 使用 Boto 确定 AWS AMI 是否可用

arrays - Numpy "ma.where"与 "where"具有不同的行为...我怎样才能使其行为相同?

python MySQLdb : SELECT DISTINCT - why returning long

python - 我可以在 python 中重载 -> 吗?

python - np数组python中的行交换

python - 在 Python 中从屏幕捕获视频数据