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)))