numpy生成数组range()、arange()和linspace()

python内置range()

使用python内置函数range()创建

import numpy as np

arr=np.array(range(10))
print('结果:\n',arr)
print('类型:',type(arr))
print('元素类型:',arr.dtype)
print('形状:',arr.shape)

执行结果:

结果:
 [0 1 2 3 4 5 6 7 8 9]
类型: <class 'numpy.ndarray'>
元素类型: int32
形状: (10,)

np.arange()函数

功能与 python内置range() 类似,根据 区间范围 和 步长,生成数组,数组的元素 是 均匀分布 的

语法

arange(start=0,stop,step=1,dtype)
参数
  • start:起始值,默认为0
  • stop:终止值(不包含)
  • step:步长,默认为1
  • dtype:元素类型
返回

ndarray对象

例子1

arr=np.arange(10)
# arr=np.arange(10,100,10,dtype=np.float)

print('结果:',arr)
print('类型:',type(arr))
print('元素类型:',arr.dtype)
print('形状:',arr.shape)

执行结果:

结果: [0 1 2 3 4 5 6 7 8 9]
类型: <class 'numpy.ndarray'>
元素类型: int32
形状: (10,)

例子2

arr=np.arange(10,100,10,dtype=np.float)

print('结果:',arr)
print('类型:',type(arr))
print('元素类型:',arr.dtype)
print('形状:',arr.shape)

执行结果:

结果: [10. 20. 30. 40. 50. 60. 70. 80. 90.]
类型: <class 'numpy.ndarray'>
元素类型: float64
形状: (9,)

从10开始,到90截止,元素的间隔是10

np.linspace() 函数

根据 区间范围 和 元素个数,生成数组,数组的元素 是均匀分布 的

语法

linspace(start,stop,num=50, endpoint=True, retstep=False, dtype=None,
             axis=0)
参数说明
  • start:表示从start开始生成
  • stop:表示从stop结束生成
  • num:默认值50,表示生成(均匀分布)多少个元素
  • endpoint:默认值True,表示包含stop,为False表示不包含stop
  • retstep:默认为False,表示只返回生成的结果。为True时返回 (samples, step),step表示步长
  • dtype:输出的类型
  • axis:生成几维数组
返回值
  • samples : ndarray类型,生成的结果
  • step : 步长,当形参 retstep=True时,才返回

例子1

import numpy as np

r=np.linspace(1,50)
print(r)
print(type(r))

执行结果:

[ 1.  2.  3.  4.  5.  6.  7.  8.  9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50.]
<class 'numpy.ndarray'>

默认生成一维数组,50个元素,并且50(范围截止)是包含的

例子2

在10-100范围内生成10个数字,返回数组,和步长

import numpy as np

arr,step=np.linspace(10,100,num=10, retstep=True)
print('结果:',arr)
print('步长:',step)
print('类型:',type(arr))

执行结果:

结果: [ 10.  20.  30.  40.  50.  60.  70.  80.  90. 100.]
步长: 10.0
类型: <class 'numpy.ndarray'>

例子3:生成二维数组

arr=np.linspace([1,10],[10,100],num=10)
print('结果:',arr)
print('类型',type(arr))
print('形状',arr.shape)

执行结果如下:

结果: [[  1.  10.]
 [  2.  20.]
 [  3.  30.]
 [  4.  40.]
 [  5.  50.]
 [  6.  60.]
 [  7.  70.]
 [  8.  80.]
 [  9.  90.]
 [ 10. 100.]]
类型 <class 'numpy.ndarray'>
形状 (10, 2)

生成10行2列的二维数组

例子4:生成二维数组

arr=np.linspace([1,10],[10,100],num=10,axis=1)
print('结果:',arr)
print('类型',type(arr))
print('形状',arr.shape)

执行结果如下:

结果: [[  1.   2.   3.   4.   5.   6.   7.   8.   9.  10.]
 [ 10.  20.  30.  40.  50.  60.  70.  80.  90. 100.]]
类型 <class 'numpy.ndarray'>
形状 (2, 10)

生成2行10列的二维数组


原文出处:/show_1EF3kRd6p2Lw.html