在数组的一个特定维度中执行操作

gia*_*an9 3 python numpy

我在n维数组上执行给定操作时遇到问题.在具体我有一个维度为5的数组:

In [223]: data.ndim
Out[223]: 5
Run Code Online (Sandbox Code Playgroud)

并且形状等于:

In [224]: shape(data)
Out[224]: (6, 26, 27, 6, 50)
Run Code Online (Sandbox Code Playgroud)

我想知道的是,是否可以对所有其他维度(例如max(data[0,0,0,0,:]))执行对最后维度的操作,但不使用任何for循环.

我希望我足够清楚!谢谢您的帮助

Eri*_*ric 6

out[i,j,k,l] = max(data[i,j,k,l,:]) 可以拼写为以下之一

out = np.max(data, axis=-1)
out = np.max(data, axis=4)
Run Code Online (Sandbox Code Playgroud)

通常,保持尺寸是有用的,如out2[i,j,k,l,0] = max(data[i,j,k,l,:]).您可以通过传递:

out2 = np.max(data, axis=-1, keepdims=True)
Run Code Online (Sandbox Code Playgroud)

所以out2.shape == (6, 26, 27, 6, 1)- 这很方便,因为它现在可以正确地对输入进行广播.

欲了解更多信息,看一看的论据ufunc.reduce,这summax周围既薄包装