小孩学习笔记2018.07.21

Python numpy(2)

import numpy as np

vector=np.array([5,10,15,20])

#返回数组中既等于10又等于5的bool型判别数组,返回[False,False,False,False]
equal_to_ten_and_five=(vector==10)&(vector==5)

#返回数组中等于10或等于5的bool型判别数组,返回[False,True,True,False]
equal_to_ten_or_five=(vector==10)|(vector==5)

#利用Bool型数组作为索引赋值,返回[50,50,15,20]
vector[equal_to_ten_or_five]=50

#将数组类型进行改变
vector=np.array(["5","10","15","20"])  #字符型数组
vector=vector.astype(float)     #改变为float型数组

#求极值
vector.mim
vector.max

#按行或按列求和
matrix=np.array([[1,2,3],
                [4,5,6],
                [7,8,9]])
matrix.sum(axis=0)     #按列求和,返回[12,14,18]
martix.sum(axis=1)     #按行求和,返回[6,1,5,24]

#数组1维转2维(向量转矩阵)
a=[1,2,3,4,5,6,7,8,9,10]
a.reshape(2,5)    #转换为2行5列数组,[[1,2,3,4,5],
                                     [6,7,8,9,10]]

#矩阵维度
a.ndim            #返回  2

#矩阵元素数量
a.size            #返回  10

b.zeros=((3,4))   #创建3行4列的全0矩阵
c.ones=((2,3,4),dtype=np.int32)   #创建3维全1矩阵,数据类型为int32

#按规则创建数组
d=np.array(10,30,5)   #创建一个从10开始,步长为5,最后数据小于30的数组
                      #返回[10,15,20,25]

#创建随机矩阵
e=np.random.random((2,3))  #创建一个2行3列,值从-1到1的随机数值矩阵

from numpy import pi
np.linspace(0,2*pi,100)  #创建一个从0开始,到2*pi结束,平均100个数值的矩阵

#数组的运算
#加、减、平方(略)
#乘法:A*B 为两个矩阵对应位置直接相乘
     #A.dot(B) / np.dot(A,B) 为两个矩阵的内积

np.exp(A)   #求e的多少次幂
np.sqrt(A)  #对A中每个值求根号

np.floor(10*np.random.random((3,4)))  #创建向下取整的数组 
a=np.ravel()   #将多维数组转换为1维数组
a.T    #数组的转置

#矩阵的拼接
np.hstack(a,b)    #a,b数组按行进行拼接
np.vstack(a,b)    #a,b数组按列进行拼接

#矩阵的切分
np.hsplit(a,3)        #将数组a按行平均切成3分(按行索引,竖着切)
np.hsplit(a,(3,4))    #将数组a按行分别在第3个数值后、第4个数值后竖着切一刀,返回3个数组

np.vsplit(a,3)        
np.vsplit(a,(3,4))    #与上同理,(横着切)

#数组的复制
b=a.view()     #浅复制,指向不同,但共用一套值,改变b的值,a的值也随之改变
b=a.copy()     #深复制,指向不同,也不共用一套值

#找出最大值
a_ind=a.argmax[axis=0]  #找出每列中数据最大值的位置


#a.shape返回列数,range()为计数函数,range(a.shape[1])返回[0:4],左闭右开区间,
#即a_max返回数组中每列最大的值,返回一个以为数组
a_max=a[a_ind,range(a.shape[1])]

#数组的扩展
a=np.tile(2,3)   #行数扩展为原来的2倍,列数扩展为原来的3倍,数值为整体复制

#排序
a.sort(axis=1)   #每行数值有小到大进行排序

a.argsort        #由小到大索引值进行排序



 

你可能感兴趣的:(个人笔记)