前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >junpter notebook_numpy_2

junpter notebook_numpy_2

作者头像
以某
发布2023-03-07 14:00:57
2320
发布2023-03-07 14:00:57
举报
文章被收录于专栏:Jack96Jack96
代码语言:javascript
复制
import matplotlib.pyplot as plt
代码语言:javascript
复制
import numpy as np
代码语言:javascript
复制
### 两个图片的列合并

In [12]:

代码语言:javascript
复制
o=plt.imread('onr.jpg')
代码语言:javascript
复制
plt.imshow(o)
代码语言:javascript
复制
o.shape

Out[12]:

代码语言:javascript
复制
(456, 334, 3)

In [28]:

代码语言:javascript
复制
m=plt.imread('mj.jpg')
代码语言:javascript
复制
plt.imshow(m)
代码语言:javascript
复制
m.shape

Out[28]:

代码语言:javascript
复制
(480, 640, 3)

In [37]:

代码语言:javascript
复制
plt.imshow(m[100:130,300:350][::2,::2])
代码语言:javascript
复制
mm = m.copy()

代码语言:javascript
复制
plt.imshow(mm)

Out[37]:

代码语言:javascript
复制
<matplotlib.image.AxesImage at 0x1c84f866a58>
代码语言:javascript
复制
plt.imshow(np.concatenate([o[:,:],m[0:456,:]],axis=1)) 
代码语言:javascript
复制
### 注意:
代码语言:javascript
复制
### 图片二比图片一大,axis=1列对齐,行宽相等,取较小的图片的行数比例

代码语言:javascript
复制
### axis : 0 行合并(y) , 1 列合并(x) , -1 本维度的最后一个维度
代码语言:javascript
复制
### 马赛克
代码语言:javascript
复制
代码语言:javascript
复制
z = m[100:130,300:350][::5,::5]
代码语言:javascript
复制
plt.imshow(z)

In [78]:

代码语言:javascript
复制
z.shape

Out[78]:

代码语言:javascript
复制
(6, 10, 3)

In [62]:

代码语言:javascript
复制
plt.imshow(m[100:130,300:350])

Out[62]:

代码语言:javascript
复制
<matplotlib.image.AxesImage at 0x1c84f1bbb38>
代码语言:javascript
复制
### 图片据部马赛克
代码语言:javascript
复制
mm = m.copy()
代码语言:javascript
复制
for i in range(6):
代码语言:javascript
复制
    for j in range(10):
代码语言:javascript
复制
        mm[100+5*i:105+5*i,300+5*j:305+5*j]=m[100+5*i:105+5*i,300+5*j:305+5*j][::5,::5]

In [80]:

代码语言:javascript
复制
plt.imshow(mm)

Out[80]:

代码语言:javascript
复制
<matplotlib.image.AxesImage at 0x1c850f56668>

In [70]:

代码语言:javascript
复制
plt.imshow(m[0:200,200:400][::10,::10])

Out[70]:

代码语言:javascript
复制
<matplotlib.image.AxesImage at 0x1c84fc5c978>

In [75]:

代码语言:javascript
复制
z = m.copy()
代码语言:javascript
复制
for i in range(20):
代码语言:javascript
复制
    for j in range(20):
代码语言:javascript
复制
        z[0+10*i:10+10*i,200+10*j:210+10*j]=m[0+10*i:10+10*i,200+10*j:210+10*j][::10,::10]

In [76]:

代码语言:javascript
复制
plt.imshow(z)

Out[76]:

代码语言:javascript
复制
<matplotlib.image.AxesImage at 0x1c84fd6f978>
代码语言:javascript
复制
### 图片的替换
代码语言:javascript
复制
plt.imshow(o)

In [82]:

代码语言:javascript
复制
plt.imshow(o[200:280,110:230])

Out[82]:

代码语言:javascript
复制
<matplotlib.image.AxesImage at 0x1c851002cf8>

In [160]:

代码语言:javascript
复制
o[200:290,120:220].shape

Out[160]:

代码语言:javascript
复制
(90, 100, 3)

In [161]:

代码语言:javascript
复制
v = m.copy()
代码语言:javascript
复制
mm = v[100:130,300:350]
代码语言:javascript
复制
plt.imshow(mm)

Out[161]:

代码语言:javascript
复制
<matplotlib.image.AxesImage at 0x1c8536415c0>

In [162]:

代码语言:javascript
复制
o[200:290,120:220][::3,::2].shape

Out[162]:

代码语言:javascript
复制
(30, 50, 3)

In [163]:

代码语言:javascript
复制
oo = o[200:290,120:220][::3,::2]
代码语言:javascript
复制
oo.shape

Out[163]:

代码语言:javascript
复制
(30, 50, 3)

In [168]:

代码语言:javascript
复制
v[100:130,300:350]=o[200:290,120:220][::3,::2]
代码语言:javascript
复制
# mm = oo

In [169]:

代码语言:javascript
复制
plt.imshow(v)

Out[169]:

代码语言:javascript
复制
<matplotlib.image.AxesImage at 0x1c853745eb8>

重设形状

ndarray.reshape(tuple)

tuple是新形状的参数

元素的总量不能变化

In [134]:

代码语言:javascript
复制
lj.shape

Out[134]:

代码语言:javascript
复制
(483, 483, 3)

In [139]:

代码语言:javascript
复制
lj.size

Out[139]:

代码语言:javascript
复制
699867

In [140]:

代码语言:javascript
复制
483*483*3

Out[140]:

代码语言:javascript
复制
699867

In [143]:

代码语言:javascript
复制
lj.reshape((483*483*3,1))

Out[143]:

代码语言:javascript
复制
array([[35],
       [36],
       [31],
       ...,
       [42],
       [43],
       [35]], dtype=uint8)
代码语言:javascript
复制
#矩阵的偏平化

In [153]:

代码语言:javascript
复制
lj.reshape(-1)

Out[153]:

代码语言:javascript
复制
array([35, 36, 31, ..., 42, 43, 35], dtype=uint8)

In [152]:

代码语言:javascript
复制
A = np.array([1,2,3,4,5,6,7,8,9,10])
代码语言:javascript
复制
A.reshape(-1,1)

Out[152]:

代码语言:javascript
复制
array([[ 1],
       [ 2],
       [ 3],
       [ 4],
       [ 5],
       [ 6],
       [ 7],
       [ 8],
       [ 9],
       [10]])
代码语言:javascript
复制
ndarray.ravel()  偏平化

In [154]:

代码语言:javascript
复制
lj.ravel()

Out[154]:

代码语言:javascript
复制
array([35, 36, 31, ..., 42, 43, 35], dtype=uint8)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 重设形状
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档