Python資料處理之(三)Numpy建立array
阿新 • • 發佈:2018-11-19
一、關鍵字
- array:建立陣列
- dtype:指定資料型別
- zeros:建立資料全為0
- ones:建立資料全為1
- empty:建立資料接近0
- arrange:按指定範圍建立資料
- linspace:建立線段
二、建立陣列
>>> import numpy as np
>>> a=np.array([1,2,3,4])
>>> a
array([1, 2, 3, 4])
>>> print(a)
[1 2 3 4]
三、指定資料 dtype
>>> a=np.array([1,2,3],dtype=np.int)
>>> print(a)
[1 2 3]
>>> print(a.dtype)
int32
>>> a=np.array([1,2,3],dtype=np.int64)
>>> print(a.dtype)
int64
>>> a=np.array([1,2,3],dtype=np.float)
>>> print(a.dtype)
float64
>>> a=np.array([1,2,3],dtype=np.float32)
>>> print(a.dtype)
float32
四、建立特定資料
建立全零陣列
>>> a=np.zeros((3,4))#三行四列
>>> print(a)
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
建立全一陣列, 同時也能指定這些特定資料的 dtype:
>>> a=np.ones((3,4),dtype=np.float32)
>>> print(a)
[[1. 1. 1 . 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]
建立全空陣列, python中的全空其實也是有值的,只是每個值都是接近於零的數
>>> a=np.empty((3,4))
>>> print(a)
[[3.56043053e-307 1.60219306e-306 2.44763557e-307 1.69119330e-306]
[1.78020848e-306 5.11798224e-307 6.23056330e-307 6.23058028e-307]
[1.11260348e-306 1.37962049e-306 2.22521238e-306 1.24611470e-306]]
用 arange 建立連續陣列:
>>> a=np.arange(10,20,2)
>>> print(a)
[10 12 14 16 18]
使用 reshape 改變資料的形狀
>>> a=np.arange(12)
>>> print(a)
[ 0 1 2 3 4 5 6 7 8 9 10 11]
>>> a=np.arange(12).reshape((3,4))
>>> print(a)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
用 linspace 建立線段型資料:
開始端1,結束端10,且分割成20個數據,生成線段
>>> a=np.linspace(1,10,20)
>>> print(a)
[ 1. 1.47368421 1.94736842 2.42105263 2.89473684 3.36842105
3.84210526 4.31578947 4.78947368 5.26315789 5.73684211 6.21052632
6.68421053 7.15789474 7.63157895 8.10526316 8.57894737 9.05263158
9.52631579 10. ]
這裡需要特別注意,是linspace
,不是linespace
同樣也能進行 reshape 工作:
>>> a=np.linspace(1,10,20).reshape((4,5))
>>> print(a)
[[ 1. 1.47368421 1.94736842 2.42105263 2.89473684]
[ 3.36842105 3.84210526 4.31578947 4.78947368 5.26315789]
[ 5.73684211 6.21052632 6.68421053 7.15789474 7.63157895]
[ 8.10526316 8.57894737 9.05263158 9.52631579 10. ]]