python 日志分析,python笔记总结

  python 日志分析,python笔记总结

  什么是NumPy?Python是科学计算的基础包,矩阵计算常用于数据分析。这时候Np属性太多记不住了,方便你用。总结记录一些常用的Np属性,使用时很容易找到。

  ndarray.ndim

  数组的轴数(大小)。

  ndarray.shape

  数组的大小。这是一个整数元组,表示每个维度中数组的大小。对于具有n行m列的矩阵,形状将是(n,m)。因此,元组的长度是轴的数量ndim。

  ndarray.size

  数组中元素的总数。这相当于元素的产品形状。

  ndarray.dtype

  描述数组中元素类型的对象。您可以使用标准Python类型创建或指定dtype。此外,NumPy还提供了自己的类型。Numpy.int32、numpy.int16和numpy.float64就是一些例子。

  ndarray.itemsize

  数组中每个元素的大小(以字节为单位)。例如,类型为float64的元素数组的itemsize为8(=64/8),而其中一个类型complex32的itemsize为4(=32/8)。它等效于ndarray.dtype.itemsize

  ndarray.data

  包含数组实际元素的缓冲区。一般情况下,我们不需要使用这个属性,因为我们将使用索引工具来访问数组中的元素。

  知识的杂乱?要查看某个函数的帮助文档,可以直接在文件中输入代码:help(np.add)。

  或者在命令行输入:np.info(np.add)。

  检查包的版本号信息,可以直接输出:np。__版本_ _

  用zero函数创建一个数组,默认单元格大小为八个字节(也就是默认的double?)

  将numpy作为np导入

  A=np.zeros(4)

  打印(A.itemsize)

  打印(A.itemsize*A.size)

  输出:

  八

  3注意数组开始下标从0开始。

  关于排列和整形函数:将numpy作为np导入

  A=np.arange(8)。整形(2,4)

  打印(一份)

  输出:

  [[0 1 2 3]

  [4 5 6 7]]关于返回非零元素下标的一系列操作:import numpy as np

  A=np.arange(8)。整形(2,4)

  A=A 1

  A[0][1]=0

  打印(一份)

  print(np .非零(A))

  输出:

  [[1 0 3 4]

  [5 6 7 8]]

  (array ([0,0,0,1,1,1,1],dtype=int64),array ([0,2,3,0,1,2,3],dtype=int64),其中返回两个参数,一个是第一维的下标,一个是第二维的下标。

  关于眼函数、随机函数和变量性质的测试B=np.eye(2)

  打印(B)

  打印(b .尺寸)

  print(B[0][1])

  B=np.random.random((3,2))

  打印(B)

  你好

  打印(B)

  输出:

  [[1.0.]

  [0.1.]]

  四

  0.0

  [[0.29490288 0.14067274]

  [0.96161076 0.92929841]

  [0.26694438 0.40938209]]

  你好,可见同一个变量名在不同的时间可以代替不同的东西。

  但是你不能替换这个变量中的一些:(在下面的函数中,只运行前两行没有问题)

  程序1:

  qqweqeqweqq=np.zeros(12)

  对于范围(10)内的I:

  qqweqeqweqq[i]=np.zeros(12)

  错误:

  ValueError:用序列设置数组元素。

  -

  程序2:

  qqweqeqweqq=np.zeros((10,2))

  对于范围(10)内的I:

  qqweqeqweqq[i]=np.zeros(12)

  错误:

  错误:无法将输入数组从形状(12)广播到形状(2),但这没有问题:

  qqweqeqweqq=np.zeros((10,2))

  QQQEQWEQQ=NP。Zeros (12)问题:序列,数组,列表,dic,有什么区别?

  和函数、最大值函数、最小值函数、均值函数B=np.random.random((3,2))

  打印(B)

  print(B.max(),B.min(),B.mean())

  输出:

  [[0.89882712 0.77860196]

  [0.7093924 0.15120126]

  [0.99924821 0.91765126]]

  对应于0.99248217577,你可以加上参数axis=0来表示第0维上的合并。49676.88686868661

  进一步体验随机函数np1 . random . rand(0-1之间的随机数生成)\randn(服从正态分布的随机数生成)\randint(随机整数生成)\choice([])(随机数生成的范围定制).............

  经验指数下标差:B=np.arange(25)。整形((5,5))

  打印(B)

  print(B[1:-1,1:-1])

  打印(B[1:-1])

  打印(B[1:-1][1:-1])

  输出:

  [[ 0 1 2 3 4]

  [ 5 6 7 8 9]

  [10 11 12 13 14]

  [15 16 17 18 19]

  [20 21 22 23 24]]

  [[ 6 7 8]

  [11 12 13]

  [16 17 18]]

  [[ 5 6 7 8 9]

  [10 11 12 13 14]

  [15 16 17 18 19]]int、float、str之间的类型转换:num2= 123

  num 2=int(num 1);

  print( num 2:% d % num 2 );

  输出数量2: 123

  num1= 123.12

  num 2=float(num 1);

  print( num 2:% f % num 2 );

  数字2: 123.12万

  num=123

  mystr=str(num);

  打印( % s % mystr );

  输出123 其他小测试:(关于numpy的sum函数)

  范围(2,4)

  Out[141]:范围(2,4)

  np.sum(范围(4))

  Out[142]: 6

  qqqq=范围(4)

  指数基金

  Out[144]:范围(0,4)

  类型(qqqq)

  Out[145]:范围

  np.sum(范围(10,12))

  Out[146]: 21

  在numpy包中,还有一个非常实用的东西:矩阵运算。创建一个矩阵,你可以使用函数np,mat(.),参数可以是列表或数组。

  如果你想建立一个2*3全1矩阵,你只需要:

  A=np.mat (np.ones (6)。shape (2,3))就可以了。

  现在假设A是一个矩阵,那么:

  求矩阵的逆矩阵:A.I或:np.linalg.inv(A)

  求矩阵的转置:A.T或:A.linalg.transpose()

  求矩阵的行列式:np.linalg.det(A)

  求矩阵的特征值和特征向量:np.linalg.eig(np1)

  矩阵的点乘:np.linalg.dot(A,B)

  求线性方程组的解:

  首先,写出等式右边的Y值向量:y=np.array([[y1],[y2],[y3].])

  函数值的集合等于x=np.linalg.solve(A,y)

  但要注意np.mat()和np.matrix()的区别:后者是完全复制,前者是参数为矩阵时的直接引用。

  关于数据保存

  Numpy提供了几种保存数据的方法。

  以3*4阵列A为例:

  1.tofile(filename.bin )

  这种方法只能保存为二进制文件,不能保存当前数据的行列信息。文件的后缀不一定是bin,也可以是txt,但不影响保存格式。都是二进制的。

  这种保存方式对数据读取有要求,需要手动指定读取数据的dtype。如果指定的格式与保存的格式不一致,则读取的数据是错误的。

  b=numpy.fromfile(filename.bin ,dtype=**)

  读取的数据是一维数组,需要使用。

  B.shape=3,4重新指定尺寸。

  2.numpy.save(filename.npy ,a)

  使用这种方法,保存文件的后缀名称将被设置为。npy,最好只用哪个。

  要读取的Numpy.load(filename )。

  3.numpy.savetxt(filename.txt ,a)

  b=numpy.loadtxt(filename.txt )

  用于处理一维和二维数组

  两个数组的拼接:NP。Concatenate ((list1,list2),axis=0):矩阵之间的拼接

  Axis=0,表示行方向拼接(垂直连接到后面)。

  Axis=1,表示列方向拼接(水平连接到后面)。

  转载请联系作者授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: