有没有更快的方法在不使用for循环的情况下创建一个空数组的元素数组?

5 浏览
0 Comments

有没有更快的方法在不使用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循环。

0
0 Comments

问题的出现原因:在创建一个指定大小的新数组时,不希望使用for循环,并且忽略掉代码示例中的变量y,想要一种更快的方法。

解决方法一:使用numpy.zeros函数创建一个指定长度为5012的数组,其中所有元素都为零。

def no_loops():
    return funcion_a(numpy.zeros(5012))

解决方法二:在这种情况下,也可以使用numpy.empty函数,但我更喜欢numpy.zeros函数的确定性。

def no_loops():
    return funcion_a(numpy.empty(5012))

解决方法三:如果想要复制变量y中的数据,可以使用numpy.array进行显式复制。

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

解决方法四:如果需要支持numpy.array的子类,可以尝试使用numpy.asanyarray函数。

numpy.asanyarray(y)

文章整理如下:

如果你想要一个指定大小的新数组,并且希望忽略代码示例中的变量y,可以尝试以下解决方法。

解决方法一:使用numpy.zeros函数创建一个指定长度为5012的数组,其中所有元素都为零。

def no_loops():
    return funcion_a(numpy.zeros(5012))

解决方法二:在这种情况下,也可以使用numpy.empty函数,但我更喜欢numpy.zeros函数的确定性。

def no_loops():
    return funcion_a(numpy.empty(5012))

解决方法三:如果想要复制变量y中的数据,可以使用numpy.array进行显式复制。

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

解决方法四:如果需要支持numpy.array的子类,可以尝试使用numpy.asanyarray函数。

numpy.asanyarray(y)

0