python numpy笔记(重要)

 

1、np.array 的shape (2,)与(2,1)含义

ndarray.shape:数组的维度。为一个表示数组在每个维度上大小的整数元组。例如二维数组中,表示数组的“行数”和“列数”。

ndarray.shape返回一个元组(tuple),这个元组的长度就是维度的数目,即ndim属性。

一般情况下:
[1,2]的shape值(2,),意思是一维数组,数组中有2个元素(一级中括号,维度1)。

[[1],[2]]的shape值是(2,1),意思是一个二维数组,每行有1个元素(两级中括号,维度2)。

[[1,2]]的shape值是(1, 2),意思是一个二维数组,每行有2个元素(两级中括号,维度2)。

中括号的层级数就是ndarray的维度,也是shape元组的元素个数。

 

2、numpy 提取矩阵的某一行或某一列

a([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])

矩阵的某一行,a[0]即 [0, 1, 2] ,类型为narry,shape为(3,)

矩阵的某一列,a[:, 0]即 [1, 3, 6],类型为narry,shape为(3,)

 

3、特殊矩阵生成

3.1) arange  用法 :np.arange(0,10)  // 生成[0,1,2,3,4,5,6,7,8,9] 左开右闭不包括10

3.2) reshape 用法 np.arange(1,10).reshape((3,3))  从(3,4)改为(4,3)并不是对数组进行转置,而只是改变每个轴的大小,数组元素在内存中的位置并没有改变。新数组元素数量与原数组元素数量要相等。当一个参数为-1时,那么reshape函数会根据另一个参数的维度计算出数组的这个shape属性值。

3.3)随机数组生成   np.random.randint(0, 10, size=(3, 3))  随机生成(3*3)元素在0-10的数的二维数组

https://blog.csdn.net/lyb3b3b/article/details/74852737

3.4) np.array切片

3.5) 特殊矩阵的生成  np.ones((3,3))、np.zeros((3,3))、np.eye(1,1) [单位矩阵]; 还有 a=[1,2,3] np.diag(a) 是生成1,2,3 为对角线的方阵。

3.6)生成某一值的数组: np.full((3, 3), 7, dtype=np.float32)

 

4、数组和矩阵运算  np.multiply()、np.dot()和星号(*)

4.1) np.multiply()函数,点乘函数,为了矩阵能像数组那样对应位置相乘,给矩阵用的,数组也可以用,输出与相乘数组/矩阵的大小一致,对数组对矩阵都是如此.

A = np.arange(1,5).reshape(2,2)
array([[1, 2],
       [3, 4]])

B = np.arange(0,4).reshape(2,2)
array([[0, 1],
       [2, 3]])

np.multiply(A,B)       #数组对应元素位置相乘
array([[ 0,  2],
       [ 6, 12]])

矩阵场景:

np.multiply(np.mat(A),np.mat(B))     #矩阵对应元素位置相乘,利用np.mat()将数组转换为矩阵

matrix([[ 0,  2],
        [ 6, 12]])

np.sum(np.multiply(np.mat(A),np.mat(B)))    #输出为标量
20

 

4.2)dot,为了数组能像矩阵那样相乘,给数组用的,矩阵也可以用;矩阵乘法。dot就是用来做矩阵乘法的,将数组当作矩阵相乘,数组A的列数=数组B的行数。

 

4.3) * 该怎么乘就怎么乘

数组就表示数组乘法:数组X数组,直觉:对应位置相乘

矩阵就表示,矩阵乘法,矩阵a的行X矩阵b的列,a的列数!=b的行数,就报错

 

https://blog.csdn.net/shuiyuejihua/article/details/80148607

 

5 ndarray取最值及索引

#最值
np.max(a) #全局最大
np.max(a,axis=0) #每列最大
np.max(a,axis=1) #每行最大

#最值索引
np.argmin(a, axis=0) # 按每列求出最小值的索引
np.argmin(a, axis=1)  # 按每行求出最小值的索引

#python list
list_a_max_list = max(list_a) #返回最大值
max_index = list_a.index(max(list_a)) # 返回最大值的索引

 

 

转载于:https://www.cnblogs.com/ying-chease/p/8485423.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值