170617 numpy数据溢出的对策

大学上C语言的时候理论上碰到过数据溢出的问题,今天在处理实验数据中真的碰到了这个问题:

  • 对于数据过大的数值相乘时可能数据上溢问题,此时,可更改数据类型,增大数据范围。
  • 对于数据过小的数值相乘时可能数据下溢问题,此时,可定义数据截断,小于某个值的数据将其置为0或某一个较小的值等操作。

下面是一个具体点的例子
这里写图片描述

代码

# -*- coding: utf-8 -*-
"""
Created on Tue May 16 16:32:06 2017

@author: Bruce Lau
"""
import numpy as np
#%% Test ok
k=73
M_1= np.arange(k*k).reshape((k,k))
Xtr_1 = np.sum(M_1**2,axis=1)
S1 = np.sqrt(Xtr_1)
#%% Test ok
k=73
M_2= np.arange(k*k,dtype='float32').reshape((k,k))
Xtr_2 = np.sum(M_2**2,axis=1)
S2 = np.sqrt(Xtr_2)
#%% Test Wrong
k=74
M_3= np.arange(k*k).reshape((k,k))
Xtr_3 = np.sum(M_3**2,axis=1)
S3 = np.sqrt(Xtr_3)
#%% Test ok
k=74
M_4= np.arange(k*k,dtype='float32').reshape((k,k))
Xtr_4 = np.sum(M_4**2,axis=1)
S4 = np.sqrt(Xtr_4)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GuokLiu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值