war*_*ped 32
np.linspace
允许您定义获得的值的数量,包括指定的最小值和最大值。它推断步长:
>>> np.linspace(0,1,11)
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ])
Run Code Online (Sandbox Code Playgroud)
np.arange
允许您定义步长并推断步数(您获得的值数)。
>>> np.arange(0,1,.1)
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
Run Code Online (Sandbox Code Playgroud)
来自user2357112 的贡献:
np.arange
排除最大值,除非舍入错误使它不这样做。
例如,由于舍入错误,会出现以下结果:
>>> numpy.arange(1, 1.3, 0.1)
array([1. , 1.1, 1.2, 1.3])
Run Code Online (Sandbox Code Playgroud)
您可以使用以下方法排除该stop
值(在我们的示例 1.3 中)endpoint=False
:
>>> numpy.linspace(1, 1.3, 3, endpoint=False)
array([1. , 1.1, 1.2])
Run Code Online (Sandbox Code Playgroud)
小智 6
numpy.linspace
并numpy.arange
可以产生两个看似相同但实际上不同的变量。这肯定和数据内部如何存储有关。当我使用 创建 ndarrays 时arange
,内存中的大小随着元素的数量而缩放。然而,ndarray
创建的使用linspace
保持相同的大小。
from sys import getsizeof
import numpy as np
arr_lnspc5 = np.linspace(1,5,5)
arr_lnspc20 = np.linspace(1,20,20)
arr_arange5 = np.arange(1,6,1.0)
arr_arange20 = np.arange(1,21,1.0)
print(f'lnspc5 ==============')
print(f'Val: {arr_lnspc5}')
print(f'Type: {type(arr_lnspc5)}')
print(f'Size: {getsizeof(arr_lnspc5)} Bytes \n')
print(f'lnspc20 ==============')
print(f'Val: {arr_lnspc20}')
print(f'Type: {type(arr_lnspc20)}')
print(f'Size: {getsizeof(arr_lnspc20)} Bytes \n')
print(f'arange5 ==============')
print(f'Val: {arr_arange5}')
print(f'Type: {type(arr_arange5)}')
print(f'Size: {getsizeof(arr_arange5)} Bytes \n')
print(f'arange20 ==============')
print(f'Val: {arr_arange20}')
print(f'Type: {type(arr_arange20)}')
print(f'Size: {getsizeof(arr_arange20)} Bytes \n')
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
lnspc5 ==============
Val: [1. 2. 3. 4. 5.]
Type: <class 'numpy.ndarray'>
Size: 112 Bytes
lnspc20 ==============
Val: [ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.]
Type: <class 'numpy.ndarray'>
Size: 112 Bytes
arange5 ==============
Val: [1. 2. 3. 4. 5.]
Type: <class 'numpy.ndarray'>
Size: 152 Bytes
arange20 ==============
Val: [ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.]
Type: <class 'numpy.ndarray'>
Size: 272 Bytes
Run Code Online (Sandbox Code Playgroud)
小智 5
np.arange(start, stop, step)
np.linspace(start,stop,number)
Run Code Online (Sandbox Code Playgroud)
例子:
np.arange(0,10,2) o/p --> array([0,2,4,6,8])
np.linspace(0,10,2) o/p --> array([0., 10.])
Run Code Online (Sandbox Code Playgroud)