我通过r0 = np.r_[0, 0, 1]
定义了向量r0。
我可以定义其镜像r0 = -r0
,即np.r_[0, 0, -1]
。
我想创建一个r0
列表,如下所示:
0, 0, -1
0, 0, -1 + step
0, 0, -1 + 2*step
...
0, 0, 1
作为3列和(1 - ( - 1))/步骤行的数组。
我只能想到用一个列表然后把它变成一个数组,但是我真的想继续使用数组,因为我将所有代码转换为向量。
答案 0 :(得分:3)
您似乎在寻找>>> z_start = -1
>>> z_stop = 1
>>> step = 0.25
>>> np.linspace(z_start, z_stop, num=1+(z_stop-z_start)/step)
array([-1. , -0.75, -0.5 , -0.25, 0. , 0.25, 0.5 , 0.75, 1. ])
:
>>> z = np.linspace(z_start, z_stop, num=1+(z_stop-z_start)/step)
>>> n = len(z)
>>> np.vstack([np.zeros(n), np.zeros(n), z]).T
array([[ 0. , 0. , -1. ],
[ 0. , 0. , -0.75],
[ 0. , 0. , -0.5 ],
[ 0. , 0. , -0.25],
[ 0. , 0. , 0. ],
[ 0. , 0. , 0.25],
[ 0. , 0. , 0.5 ],
[ 0. , 0. , 0.75],
[ 0. , 0. , 1. ]])
将它们装回数组:
roslyn
答案 1 :(得分:0)
您可以创建一个numpy数组,并为部分数据提供视图列表。
import numpy as np
step = 10
r = np.zeros((step, 3))
r[:, -1] = np.linspace(-1, 1, step)
r0 = [r[i] for i in range(r.shape[0])]
# r0 == [array([ 0., 0., -1.]),
# array([ 0., 0., -0.77777778]),
# array([ 0., 0., -0.55555556]),
# array([ 0., 0., -0.33333333]),
# array([ 0., 0., -0.11111111]),
# array([ 0., 0., 0.11111111]),
# array([ 0., 0., 0.33333333]),
# array([ 0., 0., 0.55555556]),
# array([ 0., 0., 0.77777778]),
# array([ 0., 0., 1.])]