Python数据分析与展示(一):Numpy库入门-NdArray的生成,属性,方法,转换等

一、Numpy库简介

NumPy是使用Python进行科学计算的一个基本库,其中机器学习的大部分算法都是调用该库实现。 主要包括以下功能:

  1. 一个强大的N维数组对象Array;
  2. 用于集成C / C ++和Fortran代码的工具;
  3. 实用的线性代数、傅里叶变换和随机数生成函数。

相对于python自带的计算和存储方式而言,Numpy的方法效率更高,占用空间更小,是一个非常好的工具包。

 

二、Numpy生成Ndarray 对象的方法

1. np.array(list/tuple,dtype=np.float):生成指定的列表或者元组

a = np.array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]])

2.np.arange(n,dtype):生成0-n-1个数,类型默认为整数

a=np.arange(20)
————————————————————————result——————————————————————————————————————————————
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19])

3.np.ones((n,m)):生成n行m列的全为1的矩阵

np.ones((4,3))
————————————————————————result——————————————————————————————————————————————
array([[1., 1., 1.],
       [1., 1., 1.],
       [1., 1., 1.],
       [1., 1., 1.]])

4.np.zeros((n,m)):生成n行m列的全为0的矩阵

np.zeros((3,3))
————————————————————————result——————————————————————————————————————————————
array([[0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.]])

5.np.eye(n):生成n行n列对角线为1的矩阵

np.eye(5)
————————————————————————result——————————————————————————————————————————————
array([[1., 0., 0., 0., 0.],
       [0., 1., 0., 0., 0.],
       [0., 0., 1., 0., 0.],
       [0., 0., 0., 1., 0.],
       [0., 0., 0., 0., 1.]])

6.根据原来array对象,改变值,重新生成一个array对象

a = np.array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]])

np.ones_like(a)         #根据原来array对象,重新生成一个全为1的array对象
————————————————————————result——————————————————————————————————————————————
array([[1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1]])


np.zeros_like(a)        #根据原来array对象,重新生成一个全为0的array对象
————————————————————————result——————————————————————————————————————————————
array([[0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0]])


np.full_like(a,3)       #根据原来array对象,重新生成一个全为的array对象
————————————————————————result——————————————————————————————————————————————
array([[3, 3, 3, 3, 3],
       [3, 3, 3, 3, 3]])

7.np.linspace(a,b,n,endpoint=True/False):生成等间距的n个元素,起始位置为a,结束位置为b,endpoint代表是否取到最后一位。生成的默认为浮点数。

a=np.linspace(1,10,4)
————————————————————————result——————————————————————————————————————————————
array([ 1.,  4.,  7., 10.])

b=np.linspace(1,10,4,endpoint=False)
————————————————————————result——————————————————————————————————————————————
array([1.  , 3.25, 5.5 , 7.75])

c=np.concatenate((a,b))
c
————————————————————————result——————————————————————————————————————————————
array([ 1.  ,  4.  ,  7.  , 10.  ,  1.  ,  3.25,  5.5 ,  7.75])

补充:array对象的几个属性

a = np.array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]])
print(a.ndim)      #维度数
print(a.shape)     #对象尺度(矩阵为几行几列)
print(a.size)      #元素个数
print(a.dtype)     #元素类型
print(a.itemsize)  #对象大小,以字节为单位
————————————————————————result——————————————————————————————————————————————
2       
(2, 5)
10
int32
4

二、Ndarray 对象的一些变换

1.reshape方法:不改变原对象,会重新生成一个对象,改变前后的元素数必须一致

Python数据分析与展示(一):Numpy库入门-NdArray的生成,属性,方法,转换等_第1张图片

2.resize方法:改变源对象

Python数据分析与展示(一):Numpy库入门-NdArray的生成,属性,方法,转换等_第2张图片

3.flatten方法:将对象降为一维

Python数据分析与展示(一):Numpy库入门-NdArray的生成,属性,方法,转换等_第3张图片

4.np.astype方法,可将对象中的所有元素类型进行转换,转换后生成一个新对象,原来的保持不变

Python数据分析与展示(一):Numpy库入门-NdArray的生成,属性,方法,转换等_第4张图片

5.array.tolist()方法,将array对象转换为python原生的list。list相对而言运算速度较慢,且占用空间较大,但在对接原生python程序中,这个方法还是很有用的

Python数据分析与展示(一):Numpy库入门-NdArray的生成,属性,方法,转换等_第5张图片

三、Ndarray 对象的操作

1.一维的array对象

(1)索引:同列列表

(2)切片

         基本方式a[m:n:s],m是起始位置,n是结束位置(取不到),s是步长

Python数据分析与展示(一):Numpy库入门-NdArray的生成,属性,方法,转换等_第6张图片

2.多维的array对象

(1)索引:如下

一般形式

Python数据分析与展示(一):Numpy库入门-NdArray的生成,属性,方法,转换等_第7张图片       

负数形式:-1代表最后一个,以此类推

Python数据分析与展示(一):Numpy库入门-NdArray的生成,属性,方法,转换等_第8张图片

(2)切片

Python数据分析与展示(一):Numpy库入门-NdArray的生成,属性,方法,转换等_第9张图片

思路:第一个维度随意,第二个维度要求是1,第三个维度要求是-3

Python数据分析与展示(一):Numpy库入门-NdArray的生成,属性,方法,转换等_第10张图片

思路:第一个维度随意,第二个维度要求从1和2,第三个维度随意

Python数据分析与展示(一):Numpy库入门-NdArray的生成,属性,方法,转换等_第11张图片

思路:第一和第二维度随意,第三维度要求步长为2

 

四、Ndarray 对象的运算

1.数组与标量之间的运算时,会每个元素除以该标量。以每个数除以平均值为例:

Python数据分析与展示(一):Numpy库入门-NdArray的生成,属性,方法,转换等_第12张图片

2.基本一元函数(同理,都是每个元素的运算,运算后原数组并不改变)

Python数据分析与展示(一):Numpy库入门-NdArray的生成,属性,方法,转换等_第13张图片

Python数据分析与展示(一):Numpy库入门-NdArray的生成,属性,方法,转换等_第14张图片

3.二元函数(两个array之间的运算)

Python数据分析与展示(一):Numpy库入门-NdArray的生成,属性,方法,转换等_第15张图片

你可能感兴趣的:(python机器学习,python,numpy)