从linspace开始
t = np.linspace(0,10, 100)
和一个阵列
a = np.array([1,2,44,2, 13,...])
我想要一个数组 b ,的长度相同 linspace 其元素是数组 a 提升到linspace元素的幂(不使用for循环)。所以你会有这样的东西
b
linspace
a
b[0]=np.array([1^t[0], 2^t[0], 44^t[0],...]) b[1]=np.array([1^t[1], 2^t[1], 44^t[1],...])
等等。
既然我不想使用for循环,是否可以使用 np.apply_along_axis 对的每个元素执行功能 t 这给了我最后的机会 b 我想要?我一直在努力做到这一点,我想是因为我一定不明白 np.apply_along_axis 完全有效。
np.apply_along_axis
t
使用广播:
如果你提出一个阵列 a 的形状 (N,) 或 (1, N) (行向量)到数组 t 的形状 (M, 1) (列向量),numpy自动广播它们的形状并返回一个形状数组 (M, N) ,其中 i, j 该数组的第个元素是 a[j]**t[i] 。代表您的 t 数组作为列向量,索引为 t[:, None] ,在当前维度之后添加一个维度。
(N,)
(1, N)
(M, 1)
(M, N)
i, j
a[j]**t[i]
t[:, None]
a = np.array([1,2,44,2, 13,...]) t = np.linspace(0,10, 100) b = a**t[:, None]