gpt4 book ai didi

具有固定长度但顺序填充新值的 Python 数组

转载 作者:太空宇宙 更新时间:2023-11-03 21:13:53 24 4
gpt4 key购买 nike

假设我们有一个变量(形状 (1,N,a,b,c)),它存储形状为 (a,b,c) 的 numpy 数组。我首先想用零初始化这个变量

import numpy as np
N = 5
a = 20
b = 40
c = 4
storage = np.zeros(1, N, a, b, c)
# collect new arrays
while True:
values = np.random.random((a, b, c)) # np.array with shape (a, b, c)
save_values_to_storage(values)

函数 save_values_to_storage(values) 的目标是填充存储中的值。在第一个循环中,存储的 (1, N,...) 值将填充 values。在下一个循环中,存储的 (1, N, ... ) 值将填充 values ,并且先前的值将移动到 (1, N-1, ...)。等等。如果第一个存储的到达第一个位置(1, 1,...)并且检索并存储新的,则第一个将获得丢弃,以便新存储在位置(1, N,...),并且所有其他值按其位置减少。

I don't know how I can achieve such a behaviour. It is something like a queue for numpy arrays. So my question is how can I implement the function save_values_to_storage(values)?

编辑:看起来deque很相似。但我不知道如何将它们用于 numpy 数组

最佳答案

我想我已经解决了这个问题。我不确定这是否是最好的方法。我很欣赏任何改进。

import numpy as np
import random

N = 5
a = 20
b = 40
c = 4
inputs = np.zeros((N, a, b, c))
for i in range(0, 10):
# replace right hand side with method that gets values
values = np.random.random((a, b, c))
# expand the dimension to fit to inputs
values = np.expand_dims(values, axis=0)
# delete values in first entry of inputs
inputs = np.delete(inputs, obj=0, axis=0)
# concatenate inputs and values to a new array
inputs = np.concatenate([inputs, values], axis=0)
# for debugging
# print('shape: {}'.format(inputs.shape))

# expand the dimension with an additional first dimension to achieve (1, N, a, b, c) # shape.
inputs = np.expand_dims(inputs, axis = 0)

关于具有固定长度但顺序填充新值的 Python 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54855836/

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