实验楼 – Python Numpy 100题实验(九):几种标准化算法实现

导读:本篇文章讲解 实验楼 – Python Numpy 100题实验(九):几种标准化算法实现,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

单独把这几道题目拿出来,归为一类吧,都是标准化算法。
本讲的主要内容:

  • Z-Score标准化算法
  • Min-Max标准化算法
  • 应用L2范式标准化数据

使用Z-Score标准化算法对数据进行标准化处理

首先给出Z-Score标准化公式:

Z

=

X

m

e

a

n

(

X

)

s

d

(

X

)

Z=\frac{X-mean(X)}{sd(X)}

Z=sd(X)Xmean(X)

其实知道了公式就好算了,只是对之前的一些计算进行了一个综合

def zscore(a,axis=None):
    amean = np.mean(a, axis=axis,keepdims=True )
    astd = np.std(a, axis=axis, keepdims=True)
    return (a - amean)/astd

a = np.random.randint(1, 10, 10)
print(zscore(a))

输出:

[-0.55418416  1.07576925  0.74977857  1.07576925  0.42378789  1.40175994
 -0.55418416 -1.20616553 -1.20616553 -1.20616553]

使用Min-Max 标准化算法对数据进行标准化处理

公式:

Y

=

Z

m

i

n

(

Z

)

m

a

x

(

Z

)

m

i

n

(

Z

)

Y = \frac{Z-min(Z)}{max(Z) – min(Z)}

Y=max(Z)min(Z)Zmin(Z)

还是一样

def minmax(a, axis=None):
    a_min = np.min(a, axis=axis, keepdims=True)
    a_max = np.max(a, axis=axis, keepdims=True)
    return (a - a_min)/(a_max - a_min)

a = np.random.randint(1, 10, (3,3))
print(minmax(a))

输出:

[[0.57142857 0.42857143 1.        ]
 [0.28571429 0.28571429 0.42857143]
 [1.         1.         0.        ]]

使用L2范数对数据进行标准化处理

L2范数的计算公式:

L

2

=

x

1

2

+

x

2

2

+

.

.

.

+

x

i

2

L_{2} = \sqrt{x_{1}^{2} + x_{2}^{2}+…+x_{i}^{2}}

L2=x12+x22+...+xi2

根据计算公式写出函数:

def l2_normalize(v, axis=-1, order=2):
    l2 = np.linalg.norm(v, ord=order, axis=axis, keepdims=True)
    l2[l2==0] = 1
    return v/l2

z = np.random.randint(1, 10, (3,3))
print(l2_normalize(z))

输出:

[[0.11547005 0.80829038 0.57735027]
 [0.88345221 0.33129458 0.33129458]
 [0.64465837 0.24174689 0.72524067]]

使用Numpy将实验室LOGO转化所谓Ndarray数组

这是最后一个实验了,实验楼这一波广告。。猝不及防。。

直接附上参考答案好了:

from io import BytesIO
from PIL import Image
import PIL, requests

# 通过链接下载图像
URL = 'https://static.shiyanlou.com/img/logo-black.png'
response = requests.get(URL)

# 将内容读取为图像
I = Image.open(BytesIO(response.content))

# 将图像转换为 Ndarray
shiyanlou = np.asarray(I)
shiyanlou

Numpy100题的实验终于整理完了耶!

完结撒花!

以上~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/116741.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!