继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

初识numpy

阿萌萌1128
关注TA
已关注
手记 3
粉丝 0
获赞 4

numpy.ndarray数组:

Rank表示数组的维数

Import numpy as np   

一、创建

创建数组:a=np.array([1,2,3,4,5,6])

reshape指定行列向量:a.reshape((2,-1))  #-1代表3,a变成了2行3列的数组

zeros创建元素为0的矩阵:a=np.zeros((3,3))   #创建了一个3行3列全为0的二维数组

ones创建元素为1的矩阵:a=np.ones((3,3))   #创建了一个3行3列全为1的二维数组

full创建元素为0或1的数组:a=np.full((3,3),0)或a=np.full((3,3),1)

eye创建单位向量:a=np.eye(3)   #创建了一个对角线均为1,其余都为0的3行3列矩阵

random.random创建0~1之间的随机元素:a=np.random.random((3,4))   #创建了一个3行4列每一个元素都是0~1之间的随机数

二、索引

indexing

a=np.array([[1,2,3,4],

                   [5.6.7.8],

                   [9,10,11,12]])

①a[-2:,1:3]

#-2代表倒数第二行,:表示到最后,即([[5,6,7,8],

                                                              [9,10,11,12]])

#1:3表示从编号为1的列到编号为2的列,最后取出:([[6,7],

                                                                                [10,11]])

②有整数操作会使维度-1

③为每一行的第二个元素+10,有以下三种方式:

  a[np.arange(3),1]+=10

  a[np.arange(3),[1,1,1]]+=10

  a[[0,1,2],[1,1,1]]+=10

④获取数组中元素大于10的元素

  result_index=a>10    #返回一个布尔型数组,是否大于10

a[result_indes]就可以输出一维数组,元素为a中大于10的元素

三、特殊操作

①axis=0 对行操作

②axis=1 对列操作

③np.random.uniform(m,n)产生一个m到n之间的随机数

④tile将数组作为一个元素重复指定的次数

a=np.array([[1,2],

                    [3,4]])

np.tile(a,[1,2])   #把a作为一个整体,输出1行2列的a,输出:([[1,2,1,2],

                                                                                               [3,4,3,4]])

np,tile(a,[2,1])   #把a作为一个整体,输出2行1列的a,输出:([[1,2],

                                                                                            [3,4],

                                                                                            [1,2],

                                                                                            [3,4]])

 

⑤argsort排序函数

a=np.array([[3,6,4,11],

                    [5,10,1,3]])

a.argsort(),输出:array([[0,2,1,3],                                                        #输出的是按每行从小到大排序的索引

                                      [2,3,0,1]],dtype=int64)

 

a.argsort(axis=0),输出:array([[0,0,1,1],                                               #输出的是按每列从小到大排序的索引

                                                 [1,1,0,0]],dtype=int64)

⑥矩阵转置:行变列,列变行

a.T

np.transpose(a)

 

四、广播特性:在矩阵相加时,numpy会自动进行行列扩维,使二者维度相同

a=np.array([[1,2,3],            b=np.array([1,2,3])

                                                              [2,3,4],

                                                              [12,31,22],

                                                              [2,2,2]])

操作a+b:

①for i in range(4):

     a[i,:]+=b

②a+np.tile(b,[4,1])

③numpy的广播特性:直接a+b

 

 

 


打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP