假设我有1x1x1x1x。.数组,并希望将其转换为标量?我该怎么做?squeeze没有帮助。
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
ogsagwnx1#
您可以使用item()函数:
item()
import numpy as np matrix = np.array([[[[7]]]]) print(matrix.item())
输出
7
3gtaxfhh2#
Numpy有一个明确用于此目的的函数:asscalar
>>> np.asscalar(np.array([24])) 24
这在实现中使用了item()。我猜asscalar是为了更明确地说明正在发生的事情。
asscalar
更新:
截至2023年,该函数已从NumPy中删除(参见v1.23 release notes)。
58wvjzkj3#
你可以在压缩后使用空元组索引:
x = np.array([[[1]]]) s = np.squeeze(x) # or s = x.reshape(()) val = s[()] print val, type(val)
n7taea2i4#
可以使用np.take-
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
wlp8pajw5#
>>> float(np.array([[[[1]]]])) 1.
g2ieeal76#
你可以使用numpy。flat()函数将数组展平为一维数组。例如:
s = [[1]] print(s[0][0]) >>>> 1
或
a=[[1],[2]] print(a[0][0]) >>>> 1 print(a[1][0]) >>>> 2
6条答案
按热度按时间ogsagwnx1#
您可以使用
item()
函数:输出
3gtaxfhh2#
Numpy有一个明确用于此目的的函数:asscalar
这在实现中使用了
item()
。我猜
asscalar
是为了更明确地说明正在发生的事情。更新:
截至2023年,该函数已从NumPy中删除(参见v1.23 release notes)。
58wvjzkj3#
你可以在压缩后使用空元组索引:
n7taea2i4#
可以使用
np.take
-样品运行-
wlp8pajw5#
g2ieeal76#
你可以使用numpy。flat()函数将数组展平为一维数组。例如:
或