numpy学习笔记

        之前在用python做一些数据处理的时候(列表相加、相乘),有接触到numpy,但并未进行过系统的学习。这里算是《利用Python进行数据分析》的读书笔记。

        numpy和python原始的数据类型(list等)相比较,使得数据的计算变得更为简单和高效。这体现在:

        1.数组的相加、对应元素相乘等基本运算;

        2.多维数组的转置、行列变换、求逆、矩阵相乘等矩阵运算;

        3.数据到文件的存储和读取;

        4.高效随机数生成,多种概率分布的随机数生成。   


numpy之array数组

与python相比,处理方式上快捷了很多,可以和list相互转换。

a. 数组相加、相乘等基本操作;

    arr = np.array(range(16))


array数组格式

    print arr+arr,arr-arr,arr*arr,arr/arr

b.数组类型转换

    arr.astype("float64")

c.数组索引和切片

    一维数组的索引和切片与list类似,不一样的地方在于:

    list切片后得到的数据,是copy出来的,对数据进行修改不会影响原来的list:

    array数组切片后,得到的数据,修改后对原来的数据同样进行了修改。


array切换后的修改,会改到原始数据

    这是由于在服务大数据时,如果进行切片操作,会占用过多的存储。所以设计上,array的切片其实只是原始数据的一种获取方式,而非拷贝。 

    array的索引则和list一样,  不会改动到原始数据。

索引修改不会改动到原始数据

    如果只希望对获得的数据修改,可使用arr[2:5].copy()来获取。

    多维数组索引:

   

多维数组的两种索引方式

多维数组可用[a,b...]类似于坐标的方式来对数据进行切片和索引。


多维数组的切片

花式索引:

    类似于矩阵的换行换列等操作,以向量中的元素作为index去获得原始数据对应的部分,再重新构造。


简单的花式索引-行变换


简单的花式索引2-列变换

d.数组转置

arr = np.arange(15).reshape(3,5)

arr.T#T表示转置

e.通用函数

numpy中包含多种对矩阵、数组进行计算的函数

np.sqrt(arr)#获取arr数组中所有数据的均方根

np.exp(arr)#exp

np.pow(A,B)#计算A[i]的B[i]次幂,也可用A.pow(B)表示

暂时先记录到这里,后面再补充

你可能感兴趣的:(numpy学习笔记)