gpt4 book ai didi

python - SciPy 中 10j 的值是多少?

转载 作者:太空宇宙 更新时间:2023-11-04 02:32:06 25 4
gpt4 key购买 nike

我正在学习 Python 和 SciPy。我遇到了以下两个表达式:

a = np.concatenate(([3], [0]*5, np.arange(-1, 1.002, 2/9.0)))

b = np.r_[3,[0]*5,-1:1:10j]

两个表达式输出相同的数组。我不明白第二个表达式中的 10j。它的值(value)是多少?非常感谢您的帮助。

最佳答案

这是创建 np.linspace 的简写.

根据 docs for np.r_ :

If slice notation is used, the syntax start:stop:step is equivalent to np.arange(start, stop, step) inside of the brackets. However, if step is an imaginary number (i.e. 100j) then its integer portion is interpreted as a number-of-points desired and the start and stop are inclusive. In other words start:stop:stepj is interpreted as np.linspace(start, stop, step, endpoint=1) inside of the brackets.

因此,对于您的特定情况,-1:1:10j 将导致步长为 (1 - (-1))/9 = 0.222222... 从而给出以下数组:

>>> np.r_[-1:1:10j]
array([-1. , -0.77777778, -0.55555556, -0.33333333, -0.11111111,
0.11111111, 0.33333333, 0.55555556, 0.77777778, 1. ])

虽然这碰巧给您的答案与np.arange(-1, 1.002, 2/9.0)相同,但请注意arange 通常不是创建这样一个数组的好方法,因为在aranges 中使用非整数步长是bad idea :

When using a non-integer step, such as 0.1, the results will often not be consistent. It is better to use linspace for these cases.

关于python - SciPy 中 10j 的值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48950424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com