这个任务应该被标记为 Numpy,因为 Pandas 没有
提供 5 维数组。
为了创建一个示例数组,我使用了以下代码:
import itertools
s1 = ['A', 'B', 'C']
s2 = ['AA', 'BB', 'CC', 'DD', 'EE', 'FF', 'GG', 'HH']
s3 = ['1', '2', '3', '4']
arr = np.array([ '_'.join(t) for t in itertools.product(s1, s2, s3) ])\
.reshape((len(s1), len(s2), len(s3)))
暂时arr只有3维,所以要转成5维
数组,运行:
arr = arr[:, :, np.newaxis, np.newaxis, :]
当您print(arr.shape) 时,结果为:(3, 8, 1, 1, 4)(4 天而不是 365)。
然后,要打印切片,运行:
arr[1,2]
结果是:
array(['B_CC_1', 'B_CC_2', 'B_CC_3', 'B_CC_4'], dtype='<U6')
即:
-
1(第一个索引) - 将第一个维度限制为第二个值(B),
-
2(第二个索引)- 将第二个维度限制为第三个值(CC)。
并将它们替换为 A / BB 值,运行:
arr[1,2,...] = arr[0,1,...]