Dim*_*ims 15 python numpy multidimensional-array
假设我有1x1x1x1x ...数组并希望将其转换为标量?
我该怎么做?
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
Run Code Online (Sandbox Code Playgroud)
gtl*_*ert 26
你可以使用这个item()功能:
import numpy as np
matrix = np.array([[[[7]]]])
print(matrix.item())
Run Code Online (Sandbox Code Playgroud)
产量
7
Run Code Online (Sandbox Code Playgroud)
Tom*_*ale 12
Numpy有一个明确的功能:asscalar
>>> np.asscalar(np.array([24]))
24
Run Code Online (Sandbox Code Playgroud)
它使用item()在实施.
我想asscalar更加明确地说明了发生了什么.
您可以在挤压后使用空元组进行索引:
x = np.array([[[1]]])
s = np.squeeze(x) # or s = x.reshape(())
val = s[()]
print val, type(val)
Run Code Online (Sandbox Code Playgroud)