对于同样的数值计算任务,使用numpy比直接编写python代码实现 优点:
创新互联一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!为您提供网站设计制作、成都做网站、成都网页设计、小程序制作、成都网站开发、成都网站制作、成都软件开发、重庆APP开发是成都本地专业的网站建设和网站设计公司,等你一起来见证!
个人以前会弄混shape和size,注意shape打印的是数组的形状是一个元组,size则是表示数组大小即总共有多少个元素
a.astype(str)
可以把a数组元素转为str类型np.array([...])
np.arange(start,stop,step,dtype)
左闭右开,np.linspace(start,stop,num,endpoint)
默认左右取闭,num是要删除的等间隔样例数量(默认50),endpoint 序列中是否包含stop值, 默认为truenp.full((2, 4), 666)
np.random.seed(2022)
设置随机种子,使得每次随机的结果固定,np.random.rand(2,5)
随机生成 2行5列的2维数组,返回数据在[0,1)之间;np.random.randint(2,5,5)
在[2,5) 范围内生成5个随机整数;np.random.uniform(2,5,10)
在 [2,5) 之间 生成均匀分布的10个数字;np.random.uniform(2,5,(2,5))
在 [2,5) 之间 生成均匀分布的(2,5)个数字; np.random.randn((2,5))
则返回有标准正态分布的数据,均值1方差0;np.random.normal(1,10,(2,5))
则可指定均值和标准差;另外,choice
从给定的数组里 生成随机结果,shuffle
把一个数组进行随机排列(如果数组是多维的 则只会在第一维度打散数据),permutation
把一个数组进行随机排列 ,或者数字的全排列,两者功能相同但permutation不会更改原来的arr 会返回一个新的copy三种索引方法:
x[np.array([[0,2],[1,3]])]
来取x对应位置的值;对于二维数组,Y[:,[0, 2]]
筛选第0和第2列,Y[[0,2,3],[1,2,3]]
同时指定行列x[x>5] = 1
通过条件进行赋值,把x中大于5的值全部赋为1,x[x<5] += 20
,小于5的值全部加20,还可以进行条件组合,比如x[(x%2==0)| (x>7)]
和x[(x%2==0)& (x>7)]
;注意对于二维数组Y = np.arange(20).reshape(4, 5) 来说,既有行又有列 因此返回的是 行列一维数组Y[Y>5]
返回的是行列一维数组,可以用Y[:, 3][Y[:, 3]>5]
把第3列大于5的行数据筛选出来A*B是对应位置元素相乘,对于arr = np.arange(12).reshape(3,4),可以用各种数学统计函数,包括sum,prod(元素乘积),cumsum(np.cumsum(arr)
从头到尾累加,每加一次输出一个元素),cumprod(累积),min,max,median,mean,np.percentile(arr,[25,50,75])
和np.quantile(arr,[0.25,0.5,0.75])
求取数列第?分位的数值(后者范围为0-1),std(标准差)
,var(方差),np.average(arr, weights=np.random.rand(*arr.shape))
加权平均,argmax 寻找最大值的下标
对于a = np.arange(9).reshape(3,3)以及b = np.arange(9,18).reshape(3,3),合并行(行变多)使用np.concatenate([a,b])
或np.vstack([a,b])
或np.row_stack([a,b])
,合并列(列变多)使用np.concatenate([a,b],axis=1)
或np.hstack([a,b])
或np.column_stack([a,b])
。
[1-5 Numpy教程 — 梗直哥随笔 v0.1 文档 (gengzhige-essay.readthedocs.io)](https://gengzhige-essay.readthedocs.io/docs/01 环境配置/1-5 Numpy教程.html)
科学计算库Numpy - mathor (wmathor.com)