有没有更快的方法来创建一个空数组的元素数组而不使用for循环

我想创建一个元素数组。我可以使用循环来完成此操作,但我想知道是否还有另一种方法,例如numpy函数或以较少的时间来完成此操作的方法。

这就是我想要做的:

def no_loops(y):


   mat = []
   for i in range(5012):
       mat.append(y[i])

   fun = funcion_a(mat)

   return fun

y数组为空。数组的元素是scipy将要求解的方程组的解。 我想更快地更改for循环。

snowd_rop 回答:有没有更快的方法来创建一个空数组的元素数组而不使用for循环

如果您想要一个特定大小的新数组,并且想从示例代码中忽略非常令人困惑的y,则可以执行以下操作:

def no_loops():
    # Create an array of length 5012,all elements of which are zero.
    return funcion_a(numpy.zeros(5012))

在这种情况下,您也可以使用numpy.empty,但是我更喜欢numpy.zeros的确定性。

如果要复制y中的数据,则可以使用numpy.array进行显式复制:

def no_loops(y):
   return funcion_a(numpy.array(y[:5012]))

如果您需要支持numpy.asanyarray的子类,也可以使用numpy.array进行调查。参见:Numpy - array vs asarray

本文链接:https://www.f2er.com/3121776.html

大家都在问