python numpy 索引,python数组索引和切片
科学计算工具numpy的数组索引切片、Numpy随机数和文件生成(二)读一个用python实现的科学计算包。包括:
1.强大的n维数组对象数组;
2.成熟(广播)函数库;
3.集成C/C和Fortran代码的工具包;
4.实用线性代数,傅立叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy一起使用更方便。
3354摘自百度百科
总之,NumPy(Numeric Python)提供了很多先进的数值编程工具,是专门为严格的数字处理而生产的。许多大型金融公司都使用它。是学习python数据分析必学的科学计算工具。
1.数组的索引1.1基本索引和切片#基本索引和切片#一维数组类似于listar=np.array ([a , b , c , b , d , f , r , h ,J ])print(ar[3])print(ar[:3])print(ar[:2])b[ a b c ][ a c d r J ]# 2D数组ar=NP 4)print(ar[2])print(ar[2][2]) :2]) #切片前三行的前两列[8 9 10 11]10[[0 1 23][4 5 6 7][8 9 10 11]]14[[0 1][4 5][8 9]]# 3D数组ar=np.arange (12)。 reshape(3 ^ 2)print(ar)print(-)print(ar[2][0][1])#第3维,第0行,第1列[[01][23]][[45][67]][[89][1011]]-9 1.2布尔索引和切片#布尔索引和切片ar=NP。阿兰格(12)。Reshape (3,3 true]) j=np.array ([true,True,false,false])print(ar[)print(I)print(J)#在第一维度做出判断,只保留True,其中第一维度是直线,ar [i,]=ar [i. J]) #在第二维度做出判断。这里,如果ar[:i]会有一个警告,因为I是3个元素, 而且ar在列上有4 #布尔索引:用布尔矩阵过滤m=ar 5print(m) #这里M是判断矩阵print(ar[m]) #用M判断矩阵过滤ar数组中的5个元素关键点后来的熊猫判断原理就是从这里来的[[0123] [4567] [891011]][真真假假][真真假假][[0123][891011]][[01][45][89]][[假假假假][假假[6 7 8 9 10 11] #数组索引和切片的值更改和复制ar=NP . arange(10)print(ar)ar[5]=100 ar[7:9]=200 print(ar)#当一个标量赋给一个索引/切片时,原数组ar=NP . arange(10)b=ar . Copy()b[7:9]=200 print(ar)print(b)# Copy Numpy
#随机数生成sample=NP . random . normal(size=(4,4))print(sample)[[-1.65917538 1.93054953 0.05101332 0.03720209][-1.5878757575 0.75759313-1.58702116-1.34863132][1.1078331 1 type(b))print(-)data1=NP . rand . rand(1000)data 2=NP . rand . rand(1000)import matplotlib . py PLT as PLT % matplotlib online # magic function自动生成图表plt.scatter (data1,data2) plt.scatter (data1,data 2)[0.1099355 0.68164177 0.67924836 0.3330922 0.181
# numpy.random.randn (d0,d1,dn):生成一个浮点数或N维浮点数组3354正态分布data 3=NP . random . randn(1000)Data4=NP . random . randn(1000)PLT . scatter(data 3,data 4)
# numpy.random.randint(低,高=无,大小=无,dtype=l ):生成一个整数或普通维整数数组# 若高的不为没有人时,取[低,高]之间随机整数,否则取值[0,低)之间随机整数,且高的必须大于低#数据类型参数:只能是(同国际组织)国际组织类型打印(NP。随机的。randint(2))# low=2:生成一个[0,2)之间随机整数打印(NP。随机的。randint(10))# low=10:生成一个[0,10)之间随机整数print(np.random.randint(2,10))# low=2,high=10:生成一个[2,6)之间随机整数print(np.random.randint(5,size=10))# low=5,size=10:生成10个[0,5)之间随机整数print(np.random.randint(2,5,size=10))# low=2,high=6,size=5:生成5个[2,6)之间随机整数print(np.random.randint(2,6,(2,3))# low=2,high=6,size=(2,3):生成一个2*3整数数组,取值范围:[2,6)随机整数185[4 4 0 2 3 4 3 0 0 2][2 4 3 4 4 3 3 2 2 3][[4 4 5] [3 5 4]] 3.数组文件的生成及读取3.1 读取/写入数组文件导入oso。chdir( E:\ \ Python )ar=NP。随机的。randint(0,10,(2,5)) #取值范围要完整,否则报错打印。保存( numpytest。npy ,ar)[[0 4 3 1 2][3 4 0 5 3]]完成!# 读取数组数据。神经肽y文件ar _ load=NP。load( numpytest。npy )print(ar _ load)[[0 4 3 1 2][3 4 0 5 3]]3.2存储/读取文本文件# 存储/读取文本文件ar=np.random.rand(5,5)np.savetxt(array.txt ,ar,delimiter=,,fmt=%.2f)# np.savetxt(fname,X,fmt=%.18e ,delimiter= ,newline=\n ,header= ,footer= ,comments=# ):存储为文本文本文件(文本文件)文件ar _ load txt=NP。load txt( array。文本,分隔符=,)print(ar_loadtxt,ar_loadtxt.dtype)#也可以直接NP。load txt( E:\ \ Python \ \ array。txt )[[0.01 0.39 0.31 0.32 0.08][0.3 0.05 0.14 0.75 0.55][0.35 0.83 0.7 0.55 0.56][0.95 0.59 0.97 0.93 0.76][0.56 0.84 0.13 0.15 0.2]]]浮动66
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。