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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。