【利用python进行数据分析】Chapter3:numpy基础

  1. 创建数组
# create a new ndarray based on existed list
a = [1,2,3,4,5]
arr = np.array(a)
# the dimension of ndarray
arr.ndim
# the shape of ndarray
arr.shape
# the data type of ndarray
arr.dtype
# create a ndarray of all zeros with a specified shape
np.zeros((3,2))  
# create a ndarray with arange function
np.arrange(15)
# change the data type
arr2 = np.astype(np.int32)
# create a ndarray with gaussian distribution(正态分布不会英语)
arr3 = np.random.rand(7,4)   #shape (7,4)
# choos some specified rows with a bool array
b = [True,False,True,False,False,True,False]
arr3[b]   #b中的每一个元素对应arr3中的每一行,当为True时,这行会输出
#选取一些行
rnum = [[4,3,0,6]]
data[rnum]  #输出的就是0,3,4,6行
# transpose
data.T 
#高维数组转置要使用由轴编号组成的元组
arr3d.transpose((1,0,2))
#替换 if else语句的函数:np.where  还可以使用很复杂的嵌套where
res = np.where(cond,x,y)  #相当于 x if cond else y 
#去重
np.unique(names)
#当前元素是否某个指定数组中 in1d返回一个表示x的元素是否包含于y的布尔型数组
val = ['bob','amy']
np.in1d(names,val)
#array([ True,  True,  True,  True,  True, False, False])
#保存数组
np.save('array_a',a)   #将a保存为一个扩展名为npy的文件
#读取文件
np.load('a.npy')
#保存多个数组到一个文件,按关键字参数形式传入
np.savez('arrays',a=arr,b=arr1)
#读取
np.load('arrays.npz')['a']
#返回的是arr1
#矩阵点乘 
np.dot(a,b) #a.dot(b)a

argmax(0)是按照列方向(从上往下)进行搜索,返回值最大的元素的索引
argmax(1)是按照行方向(从左往右)进行搜索

你可能感兴趣的:(python数据分析)