Jay*_*Jay 5 python arrays numpy
我有两个数组:
a=np.array((1,2,3,4,5))
b=np.array((2,3,4,5,6))
Run Code Online (Sandbox Code Playgroud)
我想要的是使用a和b的值作为linspace的限制,例如
c=np.linspace(a,b,11)
Run Code Online (Sandbox Code Playgroud)
我使用此代码时出错.答案应该是数组的第一个元素:
c=np.linspace(a,b,11)
print c
c=[1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2]
Run Code Online (Sandbox Code Playgroud)
Sve*_*ach 12
如果要避免显式Python循环,可以执行以下操作:
>>> a = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)
>>> b = np.array([2, 3, 4, 5, 6]).reshape(-1, 1)
>>> c = np.linspace(0, 1, 11)
>>> a + (b - a) * c
array([[ 1. , 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2. ],
[ 2. , 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3. ],
[ 3. , 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4. ],
[ 4. , 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5. ],
[ 5. , 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6. ]])
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
c = np.array([np.linspace(i,j,5) for i,j in zip(a,b)])
#array([[ 1. , 1.25, 1.5 , 1.75, 2. ],
# [ 2. , 2.25, 2.5 , 2.75, 3. ],
# [ 3. , 3.25, 3.5 , 3.75, 4. ],
# [ 4. , 4.25, 4.5 , 4.75, 5. ],
# [ 5. , 5.25, 5.5 , 5.75, 6. ]])
Run Code Online (Sandbox Code Playgroud)