Python中的numby学习记录

关于numby的介绍

        numby是python中常用的一个库,它是一个由多维数组对象和用于处理数组的例程集合组成,全称numeric python,numby库中包含很多数组相关的计算:

  • 数组的算数和逻辑运算。

  • 傅立叶变换和用于图形操作的例程。

  • 与线性代数有关的操作, NumPy 拥有线性代数和随机数生成的内置函数。

         当然,numby的功能绝对不仅仅于此,博主也将会在后续的学习中慢慢更新其它的功能介绍,本篇文章主要介绍一些numby在数字图像处理中会应用的一些简单功能。

numby中的三个属性

import numby as np

#显示数据类型
np.dtype 

#显示几乘几的矩阵
np.shape

#显示几维的数组
np.ndim

     

numby中的数据类型 

        int/int8/int16...整数型

        nint/nint8/uint64...无符号整数型

        float/float6/float64...浮点型

创建矩阵

           矩阵的创建有如下几种方法,array直接创建,或者直接创建指定数据类型的矩阵,还有随机矩阵。

import numpy as np

# 用array直接创建一个数组
x = np.array([1, 2, 3])
print(x)
#  默认是int32数据类型
print(x.dtype)

# 直接指定类型创建
y = np.uint8([1, 1, 1])
print(y)
print(y.dtype)

# 改变数组的类型
z = np.float32(x)
print(z)
print(z.dtype)

# arange函数,可以有小数的step
xx = np.arange(2, 10, 1)
print(xx)

# linspace函数,分成几份
yy = np.linspace(2, 10, 9)
print(yy)

# 创建特殊矩阵,全0矩阵、全1矩阵、单位矩阵、单位矩阵
x1 = np.zeros((4, 4), int)
x2 = np.ones((4, 4), dtype=float)
x3 = np.eye(4)
x4 = np.identity(4)
print(x1)
print(x2)
print(x3)
print(x4)

# 创建随机数组
y1 = np.random.randint(2, 40, (2, 3), int)
print(y1)

  矩阵转换

        包括矩阵转置,矩阵堆叠和矩阵转换。

# 矩阵转换,注意矩阵中的元素个数要相同
# -1会自动寻找合适的矩阵类型
y2 = y1.reshape((-1, 6))
print(y2)

# 生成一维向量
# 注意这个与reshape形成的一维数组不同
y3 = y1.flatten()
print(y3)

# 引用
y4 = y1.ravel()
print(y4)

# 矩阵的转置
y5 = y1.T
print(y5)

# 堆叠两个矩阵,水平和垂直
y6 = np.hstack([xx, yy])
print(y6)
y7 = np.vstack([x1, x2])
print(y7)

  最大值、最小值、平均值

# 最大值、最小值、平均值
a = y1.min()
b = y1.max()
c = y1.mean()
print(a)
print(b)
print(c)

aa = np.max(y1)
print(aa)

# 求某一列的最大值
a1 = y1.min(axis=0)
aa1 = np.max(y1, axis=0)
print(a1)
print(aa1)

  矩阵简单运算

        包括加减乘,指数和对数运算。

# 矩阵运算
# 加减
x11 = x3 + x2
x22 = x3 - x2
print(x11)
print(x22)

# 指数运算
x33 = np.power(y1, 3)
print(x33)

# 直接开根号
x44 = np.sqrt(y1)
print(x44)

# 对数运算,默认e为底,还有2和10,只有这三个
x55 = np.log(y1)
print(x55)

# 矩阵乘法
x66 = np.array([1, 2, 3])
x77 = np.ones((3, 3))
# 默认变成相同矩阵相乘
x88 = x77 * x66
# 按矩阵相乘,两种方法
x99 = x77 @ x66
x100 = x77.dot(x66)
print(x88)
print(x99)
print(x100)

元素获取

# 元素获取,和python的切片类似
y11 = y1[:, 0]
y22 = y1[1, :]
y33 = y1[0:2, 0:2]
print(y11)
print(y22)
print(y33)

y44 = y1[0, 0]
print(y44)

# 也可以直接赋值
y1[0, 0] = 4
y55 = y1[0, 0]
print(y55)

总结

        目前只学到了这些简单的东西,上面代码是在学习的过程中随手写的,所以在变量名的定义上过于草率了。因为只是一个初学者,如果上面内容有哪些错误的地方,还望指正!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值