numpy.ndarray.item
ndarray.item(*args)
将数组的元素复制到标准Python标量(scalar)并返回。
参数 : | *args :Arguments (variable number and type) none:在这种情况下, 该方法仅适用于具有一个元素(a.size == 1)的数组, 该元素被复制到标准Python标量对象中并返回。 int_type:此参数被解释为数组的平面索引, 指定要复制并返回的元素。 i nt_types的tuple:功能与单个int_type参数相同, 不同之处在于该参数被解释为数组的nd-index。 |
返回值 : | z :Standard Python scalar object 数组的指定元素的副本,作为合适的Python标量 |
Notes
当a的数据类型为longdouble或clongdouble时,item()
返回一个标量数组对象,因为没有可用的Python标量不会丢失信息。 除非定义了字段,否则无效数组将为item()
返回一个缓冲区对象,在这种情况下,将返回一个元组。
item与a[args]
非常相似,除了返回标准的Python标量而不是数组标量。 这有助于加快对数组元素的访问,并使用Python的优化数学对数组元素进行算术运算。
例子
1)从单元素数组中提取元素
import numpy as np
# 创建一个单元素数组
arr = np.array([42])
# 提取该元素
result = arr.item()
print(result)
2)使用一维索引访问元素
import numpy as np
# 创建一个二维数组
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 按展平后的索引访问(第3个元素,索引为2)
result = arr.item(2)
print(result)
3)使用多维索引访问元素
import numpy as np
# 创建一个二维数组
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 按二维索引访问 (1, 1) 位置的元素
result = arr.item(1, 1)
print(result)
4)错误示例(索引超出范围)
import numpy as np
# 创建一个二维数组
arr = np.array([[1, 2, 3], [4, 5, 6]])
try:
# 索引超出范围会引发 IndexError
result = arr.item(10)
except IndexError as e:
print(f"错误:{e}")
5)使用示例
import numpy as np
# 设置随机种子以确保结果可重复
np.random.seed(123)
# 创建一个 3x3 的随机整数数组
x = np.random.randint(9, size=(3, 3))
# 打印数组
print("数组 x:")
print(x)
# 使用 item() 方法提取特定索引处的元素
print("\n第 3 个元素(按展平后的索引):", x.item(3))
print("第 7 个元素(按展平后的索引):", x.item(7))
# 使用多维索引提取元素
print("\n元素 (0, 1) 处的值:", x.item((0, 1)))
print("元素 (2, 2) 处的值:", x.item((2, 2)))