numpy技巧_DeepLearn_Python

astype函数

astype函数用于array中数值类型转换

例子
通过代码实现感知机的阶跃函数

def step_function(x):
    if x>0:
        return 1
    else:
        return 0

上述函数参数X只接受浮点数(实数),step_function(3.0),不允许参数取numpy数组,例如step_function(np.array([-1.0,1.0]))。
问题:需要将其修改为支持numpy数组的实现

修改后:

def step_function(x):
    y = x>0
    return y.astype(np.int)

具体过程解释:

np.array([-1.0,1.0,2.0])
x = np.array([-1.0,1.0,2.0])
x # array([-1.,  1.,  2.])
y = x > 0
print(y) # [False  True  True]
y = y.astype(np.int)
y # array([0, 1, 1])

对numpy数据进行不等号运算后,数组的各个元素都会进行不等号运算,生成一个布尔类型数组。
数组y是一个布尔型数组,但我们要的阶跃函数是会输出int型的0或1的函数。
因为需要把数组y的元素类型从布尔类型转换为int型。

如上所示,可以用astype()方法转换numpy数组的类型。同时可以指定astype()参数来指定期望的类型,这个例子是np.int型

上述函数还有另一种实现方式

def step_function(x):
    return np.array(x>0 , dtype = np.int)

maximum()函数

maximum 函数会返回较大的值

def relu(x):
    return np.maximum(0,x)
x = np.arange(-5,5,0.1)
y = relu(x)
plt.plot(x,y)
plt.show()

在这里插入图片描述

ndim()函数

import numpy as np
A = np.array([1,2,3,4])
A #array([1, 2, 3, 4])
np.ndim(A) # 1
A.shape # (4,)
A.shape[0] # 4
B= np.array([[1,2],[3,4],[5,6]])
print(B)
[[1 2]
 [3 4]
 [5 6]]
)
print(np.ndim(B))
print(B.shape)
2
(3, 2)

dot()函数

矩阵相乘,乘积/点积

A = np.array([[1,2],[3,4]])
B = np.array([[5,6],[7,8]])
np.dot(A,B)
array([[19, 22],
       [43, 50]])

np.dot(A,B)和np.dot(B,A)结果可能不一样

通过dot函数 (多维数组的点积)可以实现简单神经网络的内积计算

# X为输入,W为权重,Y为输出
X = np.array([1,2])
print(X.shape)
W = np.array([[1,3,5],[2,4,6]])
print(W.shape)
Y = np.dot(X,W)
print(Y)
(2,)
(2, 3)
[ 5 11 17]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值