首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 快速入门(四)Numpy(2)

Numpy 矩阵操作

上次numpy的第一次分享,涉及了numpy矩阵的构建,一维二维的,矩阵的size,取元素,特殊矩阵的构建,slicing操作,list的comprehension,整数索引,布尔索引,等等。今天一起来看一下numpy的第二次分析,包括,numpy矩阵元素的数据类型,元素的计算,特殊方法的构建矩阵,等等。(下面的分享参考python, scipy, 和斯坦福大学的python 教程,动图来源于网络)

在上次的学习中,我们创造了一个np.array,其中包含浮点数,而使用print (type(array))可以查看该数组的类型。

import numpy as np

a = np.zeros((1))

# 创造一个0向量,只包含一个0,用小括号,zero加s

print(a)# [0]

print(type(a),type(a[0]))

# 0 默认是64位的float类型的

b = np.array([1,2.5,3,4])

# 包含一个浮点型,默认float64 类型

c = np.array([1,2,3,4])# 默认int32

当一个矩阵中包含浮点型,那么整个数组的data type就默认是 folat 64,并且每个元素都是。

除了默认的类型之外,可以创造给定的类型,整数类型包括,int 8, 16, 32, 64, 浮点型的包含 float 16, 32, 64. 具体的更多案例,就参考官网的链接:https://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html

Numpy的出现让我们操作矩阵和运算变的很方便,所以矩阵的运算就变得很重要。矩阵对于运算符号的操作是元素类的操作。

比如加法运算:就是同一个size的矩阵,对应元素的相加。减法,乘法和除法也类似。

a4 = a1 - a2

# list类型不支持 list - list 操作,也不支持除法,乘法操作。

print (a4,np.subtract(a1,a2))

# 可以利用 np.subtract

print (a1/a2,np.divide(a1,a2))

# np.devide

矩阵除了元素的运算外,其实更多的是矩阵的乘法,取均值,标准差和标准化等等一系列操作。

d = np.array([[1,2],[1,2],[1,2]])

print (b.dot(d),np.dot(b,d))

# 3*2 的矩阵和2*3的矩阵相乘,得到2*2的矩阵

# i_STEM,一维的向量相乘,

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

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

print (v1.dot(v2))

# 14,两个向量的相乘是一个值。

元素取和操作:

v = np.array([[1,2,3],[4,5,6]])

print (np.sum(v))# 21

print (np.sum(v,axis = 0))

# [5,7,9],每一列的和

print (np.sum(v,axis = 1))

# [6,15],每一行的和

print ((v-np.mean(v,axis = 0))/np.std(v,axis = 0))

# 按列标准化之后,新的矩阵每一列

# 均值为0,标准差是1,按列标准化是比较常用的一个操作,实际中每一行经常是一条数据,

其他操作还有转置操作等等。其他的更多操作参考:

https://docs.scipy.org/doc/numpy/reference/routines.math.html

很多有用的操作,比如给一个二维的矩阵每一行都加上一个向量,得到一个新的矩阵。

b = np.array([3,4])

bs = np.tile(b,(2,3))

# 原来1行两列,2*3的堆叠后,变成(1*2)*(2*3)的大小

# tile本身有砖块的意思,就是堆叠的引申意义

[[3 4 3 4 3 4]

[3 4 3 4 3 4]]

更多numpy的常用用法,可以参考官网查看了:

https://docs.scipy.org/doc/numpy/reference/

好,下次跟大家分享scipy 的用法,这是处理图像时候常用的,比如做医学图像处理等等。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181103G1RUBL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券