gpt4 book ai didi

python - 除以 numpy 数组

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:30 30 4
gpt4 key购买 nike

嗨,我正在尝试将 numpy 数组分成两部分,并在一个循环中进行此操作,例如:

main_array.shape = (50, 400, 400, 3)
for i = 0:
sub_array_1 would be equal to (0:10, 400, 400, 3)
sub_array_2 would be equal to (10:50, 400, 400, 3)
for i = 1:
sub_array_1 would be equal to (10:20, 400, 400, 3)
sub_array_2 would be equal to (20:50, 400, 400, 3)

etc...

如何做到这一点?

我使用以下代码,但得到了非常奇怪的结果:

i = 0
for k in range(1, k_fold+1):
sub_array_1 = main_array[np.uint8(i):np.uint8(i+len(main_array)//5)]


temp_0 = main_array[0:np.uint8(i)]
temp_1 = main_array[np.uint8(i+len(main_array)//5):]
sub_array_2 = np.concatenate((temp_0, temp_1), axis=0)

使用这个我确实获得了 2 个数组,但最终形状很奇怪。

我在这里做错了什么吗(我猜是这样)?

最佳答案

试试这个:

import numpy as np
main_array = np.random.rand(50, 400, 400, 3)
k_fold = 5
step = main_array.shape[0] / k_fold
for i in range(0,k_fold - 1):
sub_array_1 = main_array[int(step * i):int(step * (i + 1))]
sub_array_2 = main_array[int(step * (i + 1)):]
print("sub_array_1: {} -> {}".format(int(step * i),int(step * (i + 1))))
print(sub_array_1.shape, sub_array_2.shape)
print()

输出:

sub_array_1: 0 -> 10
(10, 400, 400, 3) (40, 400, 400, 3)

sub_array_1: 10 -> 20
(10, 400, 400, 3) (30, 400, 400, 3)

sub_array_1: 20 -> 30
(10, 400, 400, 3) (20, 400, 400, 3)

sub_array_1: 30 -> 40
(10, 400, 400, 3) (10, 400, 400, 3)

关于python - 除以 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59744183/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com