本文很长,你忍一下。
Numpy是python的一个非常基础且通用的库,基本上常见的库pandas,opencv,pytorch,TensorFlow等都会用到。
Numpy的核心就是n维array,这篇文章将介绍一维,二维和多维array。
Python是一种非常有趣且有益的语言,我认为只要找到合适的动机,任何人都可以熟练掌握它。但是要记住的是,如果你只想着凭借python去找一份工作的话,不是不行,但是很难。python这种语言更适合已经有一份工作的人,多学一个技能。 可以从最简单也是最直观的数据分析学起来,并且试着从知乎知学堂出品的数据分析课开始。
他俩非常相似,同样都是容器,都能快速的取值的修改值,但是插入和删除会慢一点。
Numpy的优点
通过list转化,自动变成np类型,shape为(3,)
!注意,如果list里面的值类型不相同,那么dtype就会返回”object“
如果暂时没有想要转化的list,可以全用0代替
也可以复制一个已经存在的全0 向量
!注意,所有创建包含固定值vector的方法都有_like函数
还有经典的arange和linspace方法
! arange方法对于数据类型敏感,比如arange(3),dtype 为int,如果你需要float类型,可以arange(3).astype(float)
生成随机array
基础的向量索引操作,只是展示部分数据,而不改变数据本身
布尔操作
也可以用.where 和clip代替上面的方法
numpy的优势就是把vector当做数做整体运算,避免循环运算
复杂的数学运算不在话下
标量运算
三角函数
整体取整
numpy还可以做基础的统计操作,比如max,min, mean, sum等
排序操作
numpy不像list有index函数,通常会用where等操作
其中有三种方法:
初始化,注意「双括号」
随机matrix,同一维类似
索引操作,不改变matrix本身
Axis 轴操作,在matrix中,axis = 0 代表列, axis = 1 代表行,默认axis = 0
matrix算术 + - * / 和 ** 都可
也可以matrix与单个数,matrix与vector,vector与vector进行运算
行向量 列向量
二维的转置如下,一维的也就是vector转置为自己本身
reshape改变形态
自此,三种向量,一维array,二维列vector,二维行向量
合并matrix,hstack横向,vstack纵向,也可以理解为堆叠
反向操作hsplit和vsplit
matrix的复制操作,tile整个复制,repeat可以理解为挨个复制
delete删除操作
删除的同时也可以插入
append操作,只能在末尾操作
如果只增加固定值,也可以用pad
网格化
c和python都很麻烦,跟别说再大点的数了
采用类似MATLAB会更快点
当然numpy有更好的办法
sum,min,max,mean,median等等
argmin和argmax返回最小值和最大值的下标
all和any也可以用
初始化,reshape或者硬来
可以考虑把数据抽象成一层层的数据
就像RGB值的图像一样
跟1D和2D类似的操作,zeros, ones,rand等
vstack和hstack照样可以用,现在多了一个dstack,代表维度的堆叠
concatenate也有同样的效果
本文总结了numpy对于1D,2D和多维的基本操作。