Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从数组中提取元素时出错。python_Python_Numpy - Fatal编程技术网

从数组中提取元素时出错。python

从数组中提取元素时出错。python,python,numpy,Python,Numpy,我有一个类似这样的numpy数组 a = np.array(1) 现在如果我想从这个数组中得到1。我如何检索这个 我试过了 a[0], a(0).. 像 或 我甚至试着做一些奇怪的压扁之类的事情,但我很确定它不应该那么复杂。。 我在这两个方面都犯了错误。。我只想要1作为int? 谢谢你用它创造的一切 a = np.array(1) 是零维数组,无法对其编制索引。您也不需要索引它——您可以直接使用a,就好像它是标量值一样。如果确实需要不同类型的值,例如float,可以使用float(a)显

我有一个类似这样的numpy数组

a = np.array(1)
现在如果我想从这个数组中得到1。我如何检索这个

我试过了

a[0], a(0).. 

我甚至试着做一些奇怪的压扁之类的事情,但我很确定它不应该那么复杂。。 我在这两个方面都犯了错误。。我只想要1作为int? 谢谢你用它创造的一切

a = np.array(1)
是零维数组,无法对其编制索引。您也不需要索引它——您可以直接使用
a
,就好像它是标量值一样。如果确实需要不同类型的值,例如
float
,可以使用
float(a)
显式转换它。如果在数组的基本类型中需要它,可以使用
a.item()
a[()]

请注意,零维数组是可变的。如果更改数组中单个项的值,则该值将通过对存储的数组的所有引用可见。如果要存储不可变值,请使用
a.item()

如果希望使用具有单个元素的一维数组,请使用

a = np.array([1])
现在,您可以使用[0]访问单个元素。

用什么创建

a = np.array(1)
是零维数组,无法对其编制索引。您也不需要索引它——您可以直接使用
a
,就好像它是标量值一样。如果确实需要不同类型的值,例如
float
,可以使用
float(a)
显式转换它。如果在数组的基本类型中需要它,可以使用
a.item()
a[()]

请注意,零维数组是可变的。如果更改数组中单个项的值,则该值将通过对存储的数组的所有引用可见。如果要存储不可变值,请使用
a.item()

如果希望使用具有单个元素的一维数组,请使用

a = np.array([1])

您现在可以使用[0]访问单个元素。

我在这里添加了一个搜索词:nditer。我还没有在numpy上做过很多工作,所以我一直坚持使用nditer为我提供0-d数组,而不是对象。无论如何,谢谢你的解决方案!如果
a=np.array(abs)
呢?如何使用此(
a(1)
gives
TypeError:'numpy.ndarray'对象不可调用
)?在使用select而不是分段时遇到了这个问题。黑客是
A.ravel()[0]
。有更好的方法吗?
a.item()
a.itemset(…)
,正如答案文本中所述,分别建议的那样。您不能使用它,因为它是标量值,因为它不是标量值。直接使用它(例如,将“值”附加到列表中)可能会导致意外错误,因为您仍在使用对原始数组的引用,如果它更改了其值,则无论您在何处使用引用(例如我的示例中的列表),它都会更改。
a.item()
a[()]
(或类似地
a.min())
)的不同之处在于前者创建一个Python对象来保存值,而后者返回一个Numpy数据类型的对象。比较
类型(a.item())
类型(a[()])
。我在这里添加了一个搜索词:nditer。我还没有在numpy上做过很多工作,所以我一直坚持使用nditer为我提供0-d数组,而不是对象。无论如何,谢谢你的解决方案!如果
a=np.array(abs)
呢?如何使用此(
a(1)
gives
TypeError:'numpy.ndarray'对象不可调用
)?在使用select而不是分段时遇到了这个问题。黑客是
A.ravel()[0]
。有更好的方法吗?
a.item()
a.itemset(…)
,正如答案文本中所述,分别建议的那样。您不能使用它,因为它是标量值,因为它不是标量值。直接使用它(例如,将“值”附加到列表中)可能会导致意外错误,因为您仍在使用对原始数组的引用,如果它更改了其值,则无论您在何处使用引用(例如我的示例中的列表),它都会更改。
a.item()
a[()]
(或类似地
a.min())
)的不同之处在于前者创建一个Python对象来保存值,而后者返回一个Numpy数据类型的对象。比较
类型(a.item())
类型(a[()])