numpy Python如何将2D数组移动到5D数组?(Family Tree Project)

oxf4rvwz  于 2023-08-05  发布在  Python
关注(0)|答案(1)|浏览(98)

我有一个5D Numpy数组,代表家族树。第一个指数代表家庭(Jetsons或Flintstones),第二个是一代(父母或孩子),第三个是他们的性别,第四个是个人,最后是他们的属性(身高,体重,年龄,收入)。
例如,arr[0,0,1,0,:]将返回Fred Flinstone属性的1D数组,因为他是家庭0,世代0,性别1,个人0。
问题是:我可以用一个2D Father_Array(包含3个父亲和4个属性),并以Python的方式将其插入到5D Family_Array中吗?
我试过:

family_array = np.empty((0, 2, 2, 1, 4))
father_array = np.ones((3,4))

family_array = np.append(family_array[:, 0, 0, 0, :], father_array, axis=0)

字符串
但这会返回一个形状为(3,4)的数组,而不是(3,2,2,1,4)。我希望能够通过以下方式检索父亲属性:

family_array[i,0,1,0,:]


其中'i'表示每个家族(对于Flintstones i = 0,对于Jetsons i = 1,对于Rubbles i = 2,等等)

pn9klfpd

pn9klfpd1#

要创建具有正确维度的family_array,您需要有一个维度为(3,2,2,1,4)的5D数组,其中3是家庭的数量,2是世代和性别的数量,1是个体的数量(因为我们现在只考虑父亲),4是属性的数量。
然后,您可以将father_array插入到第一代(0)和男性性别(1)的family_array中,如下所示:

family_array = np.zeros((3, 2, 2, 1, 4))
father_array = np.ones((3,4))

family_array[:, 0, 1, 0, :] = father_array

字符串
这将把father_array插入到family_array的相应位置,您将能够使用family_array[i,0,1,0,:]检索父节点的属性。

相关问题