从数组中提取元素时出错。python
我有一个类似这样的numpy数组从数组中提取元素时出错。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)显
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)
givesTypeError:'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)
givesTypeError:'numpy.ndarray'对象不可调用
)?在使用select而不是分段时遇到了这个问题。黑客是A.ravel()[0]
。有更好的方法吗?a.item()
和a.itemset(…)
,正如答案文本中所述,分别建议的那样。您不能使用它,因为它是标量值,因为它不是标量值。直接使用它(例如,将“值”附加到列表中)可能会导致意外错误,因为您仍在使用对原始数组的引用,如果它更改了其值,则无论您在何处使用引用(例如我的示例中的列表),它都会更改。a.item()
和a[()]
(或类似地a.min())
)的不同之处在于前者创建一个Python对象来保存值,而后者返回一个Numpy数据类型的对象。比较类型(a.item())
与类型(a[()])
。