我得到了defaultdict
,其中列表作为值,元组作为键(在下面的代码中是ddict
).我想找出一组给定关键点的最小值和最大值.密钥以数字数组的形式给出.NumPy数组是包含密钥的3Darray.3D数组的每一行是我们需要为其找到min
和max
的键块,即,对于每一行,我们获取对应的2D数组条目,并获得与这些条目相对应的值,并在这些值上找到min
和max
.我需要对3D数组的所有行执行此操作.
from operator import itemgetter
import numpy as np
ddict = {(1.0, 1.0): [1,2,3,4], (1.0, 2.5): [2,3,4,5], (1.0, 3.75): [], (1.5, 1.0): [8,9,10], (1.5, 2.5): [2,6,8,19,1,31], (1.5,3.75): [4]}
indA = np.array([ [ [( 1.0, 1.0), ( 1.0, 3.75)], [(1.5,1.0), (1.5,3.75)] ], [ [(1.0, 2.5), (1.5,1.0)], [(1.5, 2.5), (1.5,3.75)] ] ])
mins = min(ddict, key=itemgetter(*[tuple(i) for b in indA for i in b.flatten()]))
maxs = max(ddict, key=itemgetter(*[tuple(i) for b in indA for i in b.flatten()]))
我try 了上面的代码以获得
min1 = min([1,2,3,4,8,9,10,4])
&;min2 = min([2,3,4,5,8,9,10,2,6,8,19,1,31,4])
和
max1= max([1,2,3,4,8,9,10,4])
&&max2 = max([2,3,4,5,8,9,10,2,6,8,19,1,31,4])
我想为NumPy数组中的每个2D数组计算min
和max
.有什么解决办法吗?为什么我的代码不工作?它给出了错误TypeError: tuple indices must be integers or slices, not tuple