2016-02-02 32 views
7

假设我有1x1x1x1x ...数组,并希望将其转换为标量?如何将单例数组转换为Python中的标量值?

我该怎么做?

squeeze没有帮助。

import numpy as np 

matrix = np.array([[1]]) 
s = np.squeeze(matrix) 
print type(s) 
print s 

matrix = [[1]] 
print type(s) 
print s 

s = 1 
print type(s) 
print s 

回答

9

可以使用item()功能:

import numpy as np 

matrix = np.array([[[[7]]]]) 
print(matrix.item()) 

输出

7 
1

您可以使用np.take -

np.take(matrix,0) 

采样运行 -

In [15]: matrix = np.array([[67]]) 

In [16]: np.take(matrix,0) 
Out[16]: 67 

In [17]: type(np.take(matrix,0)) 
Out[17]: numpy.int64 
5

你可以索引与空的元组挤压后:

x = np.array([[[1]]]) 
s = np.squeeze(x) 
val = s[()] 
print val, type(val) 
相关问题