我想创建一个元素数组。我可以使用循环来完成此操作,但我想知道是否还有另一种方法,例如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)
如果您想要一个特定大小的新数组,并且想从示例代码中忽略非常令人困惑的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