1. 程式人生 > >Python資料處理之(三)Numpy建立array

Python資料處理之(三)Numpy建立array

一、關鍵字

  • 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.        ]]