Day2 numpy入门及图像转换

本文介绍了numpy的基础知识,包括数组操作和数学函数,并详细讲解了如何使用numpy进行图像转换,涉及图像的基础概念和转换方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.numpy入门

# 数组的基本操作
import numpy as np

# 1.Array(数组)
# a.rank
a = np.array([1,2,3])
type(a)
# numpy.ndarray
a.shape
# (3,)
a = a.reshape((1,-1))
a.shape
# (1, 3)
a = np.array([1,2,3,4,5,6])
a.shape
# (6,)
a = a.reshape((2,-1))
a.shape
# (2, 3)

# b.zeros ones full eye random.random
a = np.zeros((3, 3))
a
# array([[0.,0.,0.],[0.,0.,0.],[0.,0.,0.]])
a = np.ones((2, 3))
a
# array([[1.,1.,1.],[1.,1.,1.]])

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

a = np.eye(3)
a
# array([[1.,0.,0.],[0.,1.,0.],[0.,0.,1.]])  单位阵

a = np.random.random(4)
print(a)
# 三行四列的随机阵(浮点型)

# 数组索引 Indexing
a = np.array([[1,2,3,4],
              [5,6,7,8],
              [9,10,11,12]])
a[-2, 1:3]     #倒数第二行,第一到三列(不包括第三列)
# array([[6,7],[10,11]])

b = a[-2:, 1:3]
b.shape
# (2, 2)
b = a[2, 1:3]
b
# array([10, 11])
b.shape
# (2,)

b = a[2:3, 1:3]
b
# array([[10, 11]])
b.shape
# (1 ,2)

b = a[1, 2]
b
# 7
b.shape
# ()

# 将数组a的第一列都加10
a[np.arange(3),1] += 10      #a[np.arange(3),[1,1,1]] += 10 效果相同
np.arange(3)
# array([0,1,2])
np.arange(3, 7)
# array([3,4,5,6])

# 获取a中大于10的元素的下标
result_index = a > 10

print(a[a>10])  #xiaoguoyushangxiangtong

# 4.数学运算与常用函数
a = np.array([[1, 2],
              [3, 4]])
b = np.array([[5, 6],
              [7, 8]])
# a+b
print(a+b)
np.add(a, b)

# a-b
print(a-b)
np.subtract(a, b)

# a*b
a*b
np.multiply(a, b)

# a/b
a/b
np.divide(a, b)

# 开方
np.sqrt(a)

# 矩阵乘
np.dot(a, b)

# 常用函数
# sum
np.sum(a)   #所有元素求和
np.sum(a, axis=0)# 每列元素求和
np.sum(a, axis=1)# 每行元素求和

# mean
np.mean(a)    # 所有元素求和的平均值
np.mean(a, axis=0)      # 每列元素的平均值
np.mean(a, axis=1)    # 每行元素的平均值

# uniform
print(np.random.uniform(3, 4))   # 生成一个3到4之间的随机数

# tile
np.tile(a, (1, 2))    # 以a为单位,行上重复1遍,列上重复两遍(下同)
np.tile(a, (2, 3))

# argsort
a.argsort()   #排序,默认按行排序,得到排号的下标数组。
a.argsort(axis=1)   # 按列排序

# 矩阵转置
a.T
np.transpose(a)

2.图像转换基础

from PIL import Image
from pylab import *

# 添加中文字体支持
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14)
figure()

# 函数subplot(121)和函数subplot(122)代表在画布上分隔出一个1 行2 列的画布格式,
# 实现在画布上绘制“1 行2 列”的图形1“正弦曲线”和图形2“余弦曲线”的绘图布局。

pil_im = Image.open('./1.jpg')
gray()
subplot(131)
title('u原图', fontproperties=font)     #图名
axis('off')     #去掉坐标轴
imshow(pil_im)

pil_im = Image.open('./1.jpg').convert('L')
subplot(132)
title(u'灰度图', fontproperties=font)
axis('off')
imshow(pil_im)

pil_im = Image.open('./1.jpg').convert('L')
subplot(133)
title(u'灰度图', fontproperties=font)
axis('off')
imshow(pil_im)


show()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值