【发布时间】:2020-01-17 10:24:59
【问题描述】:
我有一个函数比如:
def f(x):
A =np.array([[0, 1],[0, -1/x]]);
return A
如果我使用标量,我将获得:
>>x=1
>>f(x)
array([[ 0., 1.],
[ 0., -1.]])
如果我使用数组作为输入,我会得到:
>>x=np.linspace(1,3,3)
>>f(x)
array([[0, 1],
[0, array([-1. , -0.5 , -0.33333333])]], dtype=object)
其实我想获取一个数组列表,即: A = [A_1,A_2, ..., A_n]
现在我不太关心它是数组数组还是包含多个数组的列表。 我知道我可以在 x 中使用 for 循环来做到这一点。但我认为可能还有另一种方法可以做到这一点,而且可能更有效。
所以我想要的输出是这样的:
>>x=np.linspace(1,3,3)
>>r=f(x)
array([[[0, 1],[0,-1]],
[[0, 1],[0,-0.5]],
[[0, 1],[0,-0.33333]]])
>>r[0]
array([[0, 1],[0,-1]])
或类似的东西
>>x=np.linspace(1,3,3)
>>r=f(x)
[array([[0, 1],[0,-1]]),
array([[0, 1],[0,-0.5]]),
array([[0, 1],[0,-0.33333]])]
>>r[0]
array([[0, 1],[0,-1]])
谢谢
【问题讨论】: