numpy基本函数,numpy求最大值
最近在看机器学习,主要参考书是《水贝博士的凝重统计研究》。突然接触到一个新的领域(名词、算法、高维、概率论),感觉挺难的。定一个小目标,每天学一点点,争取看完年前的统计学学习和精彩的春季视频,争取实现所有的算法。
没有anaconda的同学建议安装一个,里面有各种常用的安装包,在pycharm中也可以使用。你再也不用下载python的相关版本了。在cmd命令窗口中输入jupyter notebook命令可以直接打开它。你可以一键得到一个细胞。可以进入程序,按Shift和enter运行程序。
Numpy包numpy包主要是实现矩阵的高效运算(目前为止个人粗浅的理解)。与传统的for循环相比,np.dot(a,b)可以缩短运行时间。看看这个例子:
import numpy as NP import time a=NP . random . rand(100000)# Generate n * 1 matrix B=NP . random . rand(100000)TIC=time . time()C=NP . dot(a,B)#矢量化计算TOC=time.time () print(矢量化版本 str (1000 * (TOC-TIC)) ms) #矢量化, 传统for循环c=0 TIC=time . time()for I in range(100000):c=a[I]* b[I]TOC=time . time()print( for version str(1000 *(TOC-TIC)) ms )输出:矢量化版本0.999275207519531 ms for version 40.02952575683594 ms . dot(a,b)函数计算两个一维数组的内积,而如果如果要计算1*n矩阵A,A . T(A的转置)和A的乘积,应该命名为NP。数组([[1,2,3]])。这样一来,我感觉numpy中并没有把数组当作矩阵来处理。
导入numpy为NPA=np.array ([1,2,3,4]) #一维数组b=np.array ([5,6,1,1]) c=np.dot (a,b) print (c) a=np.array ([[1,2],)6]])c=np.dot(a,b)print(c)console:24[[7 8 19][19 22 45]]]sum函数。sum()可以用在矩阵中。sum(轴=0或1)函数。当参数为axis=0时,对矩阵的每一列求和,当axis=0时
导入为NPA=NP。array ([[56.0,0.0,4.4,68.0],[1.2,104.0,52.0,8.0],[1.8,135.0,99.0,0.9]) print (a) cal1=Axis=1表示要在水平方向求和,cal 2=a . sum(Axis=1)print(cal 1)print(cal 2)console:[[56 . 0 . 4 . 4 68 .] [1.2 104.52.8.][1.8 135 . 99 . 0 . 9]]import numpy as NPA=NP . array([[1,2,3,4],[5,6,7,8]])print(a)b=a . shape(1,8)c=a . shape(4,2)print(b)print(c)console:[[1 2 3 4][5 6 7 8]][[1 2 3 4 5 6 7 8]][[1 2][3 4][5 6][7 8]]。形状,用于查找矩阵中最小列数的行数。如果没有返回矩阵的参数,shape [0导入为NPA=NP。array ([[1,2,3,4],[5,6,7,8]])b=a . shape print(b)c=a . shape[0]d=a . shape[1]print(c)print(d)4)24[[1 . 0 . 0 .] [0.1.0.] [0.0.1.]] argsort()函数,对列表进行排序。注意:返回值是从小到大的下标。A=NP。Array ([4,2,5,3])B=arg sort(a)print(B)Console:[1,302] Python对矩阵和常数的加减乘除操作灵活。注意错误。A=NP。Array ([[4,2,5,3],[1,8,6,9]]) B=A100 #常数100自动转换为2*4矩阵打印(a)打印(B)控制台输出:[[4253] [1869]] [