python 学习笔记-numpy

python 学习笔记之numpy

1、矩阵的转置

      注意 :一维行数组的转置不能够成功,需要加上**【】**。

	# 注意不带括号,所以它的转置不能够成功
	x = np.array([1,2,3,4])    
	x.T
	Out[1]: array([1, 2, 3, 4])
	# 带两个括号进行转置成功
	y = np.array([[1,2,3,4]])
	y.T
	Out[2]: 
		array([[1],
       		  [2],
              [3],
              [4]])

2、矩阵的点积(multiply、*)、内积(np.dot())

2.1 矩阵的点积(multiply 实现)

      点积进行两个矩阵进行对应元素的相乘。

	# 第一个例子
	a = np.array([[1,2],[3,4]])
	b = np.array([5,6])
	np.multiply(a,b)  # 对应于行的相乘即 [[1*5,2*6],[3*5,4*6]],相当于自动的广播,自动补全一行
	Out[9]: 
		array([[ 5, 12],
       		   [15, 24]])
    # 第二个例子
    a_1 = np.array([[1,2],[3,4]])
    b_1 = np.array([[5],[6]])
	np.multiply(a_1,b_1) 	# 对应于行的相乘即:[[1*5,2*5],[3*6,4*6]] 
	Out[12]: 
		array([[ 5, 10],
       		   [18, 24]])

2.2 矩阵的点积( “*” 实现)

      a*b 的实现与 np.multiply(a,b) 一样。

2.3 矩阵的内积( np.dot()、@)

      np.dot(a,b)a@b 的效果一样。

注意当矩阵为一维矩阵时,计算的结果是对应元素相乘,再求和,不分是否符合 1* n 与 n * 1,即使是 1* n 和 1* n也能得到同样的结果。
	# 示例一
	m = np.array([1,2,3])
	np.dot(m,m)
	Out[16]: 14
	# 示例二
	n = np.array([[1,2,3],
                [4,5,6]])
	p = np.array([[1,2],
				  [3,4],
				  [5,6]])
	np.dot(n,p)
	Out[20]: 
		array([[22, 28],
       		   [49, 64]])

3. Numpy中数组的各行,各列的求和,平均值,最大值,最小值,最大最小值差,标准差,方差等的计算

      针对数组n 进行一些操作。

	import numpy as np
	n = np.arange(25).reshape(5,5)
	print(n)
		[[ 0  1  2  3  4]
		 [ 5  6  7  8  9]
		 [10 11 12 13 14]
 		 [15 16 17 18 19]
		 [20 21 22 23 24]]

3.1 各行列 进行求和np.sum()

进行求和,所有元素的相加:

	print(np.sum(n))
		300

进行求和,对应每列的值相加:其中就是axis=0

	print(np.sum(n,axis=0))
		[50 55 60 65 70]

进行求和,对应每行的值相加:其中就是axis=1

	print(np.sum(n,axis=1))
		[ 10  35  60  85 110]

3.2 各行列 进行求平均值 np.mean()

进行求平均,所有元素的相加求平均:

	print(np.mean(n))
		12.0

进行求平均,对应每列的元素相加求平均:其中就是axis=0

	print(np.mean(n,axis=0))
		[10. 11. 12. 13. 14.]

进行求平均,对应每行的元素相加求平均:其中就是axis=1

	print(np.mean(n,axis=1))
		[ 2.  7. 12. 17. 22.]

3.3 各行列 进行求最大值或最小值 np.max()或np.min()

进行求最大值或最小值 ,所有元素的最大值或最小值 :

	print(np.max(n))
		24
	print(np.min(n))
		0

进行求最大值或最小值 ,按照每列元素进行求最大与最小值 :其中就是axis=0

	print(np.max(n,axis=0))
		[20 21 22 23 24]
	print(np.min(n,axis=0))
		[0 1 2 3 4]

进行求最大值或最小值 ,按照每行元素进行求最大与最小值 :其中就是axis=1

	print(np.max(n,axis=1))
		[ 4  9 14 19 24]
	print(np.min(n,axis=1))
		[ 0  5 10 15 20]

3.3 各行列 进行求最大值与最小值 之差 np.ptp()

进行求最大与最小值的差,整体最大与最小值的差:

	print(np.ptp(n))
		24

进行求最大与最小值的差,按照每列进行求最大与最小值的差:其中就是axis=0

	print(np.ptp(n,axis=0))
		[20 20 20 20 20]

进行求最大与最小值的差,按照每行进行求最大与最小值的差:其中就是axis=1

	print(np.ptp(n,axis=1))
		[4 4 4 4 4]

3.4 各行列 进行求标准差和方差 np.std(),np.var()

进行求标准差和方差,整体标准差和方差:

	print(np.std(n))
		7.211102550927978
	print(np.var(n))
		52.0

进行求标准差和方差,按照每列进行求解标准差和方差:其中就是axis=0

	print(np.std(n,axis=0))
		[7.07106781 7.07106781 7.07106781 7.07106781 7.07106781]
	print(np.var(n,axis=0))
		[50. 50. 50. 50. 50.]

进行求标准差和方差,按照每行进行求解标准差和方差:其中就是axis=1

	print(np.std(n,axis=1))
		[1.41421356 1.41421356 1.41421356 1.41421356 1.41421356]
	print(np.var(n,axis=1))
		[2. 2. 2. 2. 2.]

3.5 多维数组的参数axis

  1. 2维数组时,参数axis=0,代表对列上的元素进行操作;axis=1时,代表对行上的元素进行操作。(可能与官方文档的解释不太一样,但是最终的效果是一样的)
  2. 当为多维数组时:
	b = np.arange(24).reshape(2, 3, 4)
 	print(b.shape)
   	print(b)
		(2, 3, 4)
		[[[ 0  1  2  3]
  		  [ 4  5  6  7]
          [ 8  9 10 11]]
        [[12 13 14 15]
         [16 17 18 19]
         [20 21 22 23]]]

当axis=0时,结果为3x4的数组: 即最外层2维上对应元素进行相加的结果

	print(b.sum(axis=0))
		[[12 14 16 18]
 		 [20 22 24 26]
 		 [28 30 32 34]]

当axis=1时,结果维2x4的数组: 即把中间的第二层进行压缩没了

	print(b.sum(axis=1))
		[[12 15 18 21]
 		 [48 51 54 57]]

当axis=2时,结果维2x3的数组: 即把最外层压缩没了

	print(b.sum(axis=2))
		[[ 6 22 38]
 		 [54 70 86]]

3.6 求矩阵的最大值或者最小值所在的位置

      np.argmax()np.argmin() 来进行实现

4 矩阵进行复制一整行或者一整列

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python学习笔记》是由皮大庆编写的一本关于Python语言学习的教材。在这本书中,作者详细介绍了Python语言的基础知识、语法规则以及常用的编程技巧。 首先,作者简要介绍了Python语言的特点和优势。他提到,Python是一种易于学习和使用的编程语言,受到了广大程序员的喜爱。Python具有简洁、清晰的语法结构,使得代码可读性极高,同时也提供了丰富的库和模块,能够快速实现各种功能。 接着,作者详细讲解了Python的基本语法。他从变量、数据类型、运算符等基础知识开始,逐步介绍了条件语句、循环控制、函数、模块等高级概念。同时,作者通过大量的示例代码和实践案例,帮助读者加深对Python编程的理解和应用。 在书中,作者还特别强调了编写规范和良好的编程习惯。他从命名规范、注释风格、代码缩进等方面指导读者如何写出清晰、可读性强的Python代码。作者认为,良好的编程习惯对于提高代码质量和提高工作效率非常重要。 此外,作者还介绍了Python的常用库和模块。他提到了一些常用的库,如Numpy、Pandas、Matplotlib等。这些库在数据处理、科学计算、可视化等领域有广泛的应用,帮助读者更好地解决实际问题。 总的来说,《Python学习笔记》是一本非常实用和全面的Python学习教材。通过学习这本书,读者可以系统地学习和掌握Python编程的基础知识和高级应用技巧,为以后的编程学习和工作打下坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zh-yi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值