如何在 python numpy 多维数组中获得最短的数组形状?
How to get the shortest array shape in a python numpy multidimensional array?
如果我有一个像这样的多维 numpy 数组:
>> x = np.array([
np.array([0, 1, 2, 3, 4, 5]),
np.array([0, 1, 2, 3, 4]),
np.array([0, 1, 2, 3]),
np.array([0, 1, 2, 3, 4]),
np.array([0, 1, 2, 3, 4, 5, 6]),
])
>> x.shape
(5,)
是否有 "pythonic way" 可以在 x
中找到最短的 shape
数组?
你只需要最短的数组吗?
如果是,我认为这是最简单的方法
import numpy as np
l = []
x = np.array([
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4],
[0, 1, 2, 3],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4, 5, 6],
])
for i in x:
l.append(np.shape(i))
print (min(l))
我使用了基于的解决方案:
min(i.shape for i in x)
谢谢大家!
如果我有一个像这样的多维 numpy 数组:
>> x = np.array([
np.array([0, 1, 2, 3, 4, 5]),
np.array([0, 1, 2, 3, 4]),
np.array([0, 1, 2, 3]),
np.array([0, 1, 2, 3, 4]),
np.array([0, 1, 2, 3, 4, 5, 6]),
])
>> x.shape
(5,)
是否有 "pythonic way" 可以在 x
中找到最短的 shape
数组?
你只需要最短的数组吗?
如果是,我认为这是最简单的方法
import numpy as np
l = []
x = np.array([
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4],
[0, 1, 2, 3],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4, 5, 6],
])
for i in x:
l.append(np.shape(i))
print (min(l))
我使用了基于
min(i.shape for i in x)
谢谢大家!