为新的numpy数组分配2Darray函数返回值

2024-10-02 14:27:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python相当陌生,有一个愚蠢的问题。我查找答案,找不到,所以我在这里(StackOverflow上的第一个问题,如果有任何错误,请原谅)。在

我有一个功能(功能。储液罐)那很好用。它以一个复杂的numpy2d数组和一个浮点值作为参数。它返回另一个复杂的numpy2d数组。我尝试将所有这些返回值保存在一个新的numpy数组中。 问题是第一个print命令给了我正确的值,这意味着我的函数工作正常。但是在for循环之外,当我打印l变量时,所有元素都有相同的值,即最后一个元素应该具有的值。在

你能告诉我我做错了什么吗?在

您可以帮助我的另一件事是将这些返回值保存为一个3D numpy数组。我不想使用vstack,因为有时候我的循环迭代4000次,vstack会大大降低速度。我现在要做的是将numpy数组保存为对象,然后稍后从这个iterable创建一个新数组。如果有更好的办法,请告诉我。提前谢谢

    k= np.zeros((400,3), dtype=np.complex128)
    l= np.empty(noPoints1, dtype=object)
    for i in  xrange(noPoints1):
      l[i] = functions.Reservoir(k, data[ OFFSET1+ Discard +i] )
      print l[i]
      k=l[i]
    print l

更新

以下是我的代码:

^{pr2}$

我尝试了HYRY(Collecting results from a loop that returns NumPy Arrays)的答案,但是对于所有元素我仍然得到相同的值。在


Tags: 答案功能numpy元素fornp数组stackoverflow
1条回答
网友
1楼 · 发布于 2024-10-02 14:27:12

你好像总是在同一个阵列上工作。在k=l[i].copy()中进行更改将确保在每一步都处理一个新数组。在

Reservoir中的return y没有在 docs

Note that slices of arrays do not copy the internal array data but also produce new views of the original data,

相关问题 更多 >