绝对最大额定值(ABSOLUTE MAXIMUM RATINGS: ABS)是否可以超过

"非常见问题来源于ADI公司电话记录中奇怪但真实的故事",每月定期刊登在EDN和Design News杂志。

绝对最大额定值有什么重要意义?

问题:“某个参数指标超出绝对最大额定值(ABSOLUTE MAXIMUM RATINGS: ABS)一点点,应该没什么关系吧?”

回答:  虽然这个问题的答案对许多人来说是显而易见的,但确实值得进行一番探讨……对了,顺便说一下,答案是一点都不能超过!


在绝大多数数据手册中,包含的信息大部分都是“典型值”数据。图形、表格和曲线所提供的性能数据是可预测的,并且只要新设计符合推荐的工作条件,这些性能在新设计中就很容易实现。数据手册中也会给出最小值和最大值。这些极限值是由制造商规定的,并且通过了设计验证或详尽测试和良率分析的检验,有所保证。数据手册中还包含了绝对最大额定值部分,提供了器件可以容忍的绝对最大额定值,但这绝不是正常工作时的条件,就像火一样,您最好远离这些ABS极限值,否则很容易引火烧身!

在英文数据手册中,绝对最大额定值会用大写字母来标示,因为它特别重要。这段位于数据手册ABS表下方的声明清楚地说明了绝对最大额定值的含义。

“超出绝对最大额定值表可能导致器件永久性损坏。这只是强调的额定值,不涉及器件在这些或其它条件下超出本技术规格指标的功能性操作。长期在绝对最大额定值条件下工作会影响器件的可靠性。”

这段话已经表达得很清楚了,但我还想重申一下,这些器件并不是设计成在绝对最大额定值表列出的条件下工作的,如果在这些绝对最大额定值或超出这一值的条件下工作,那么器件将很可能永久性地被损坏!

朋友们,请接受我的忠告吧。为了充分认清并远离危险,请在设计任何电路或系统时尽量避免接近绝对最大额定值。一个很好的通用工程实践方法是在设计中留出足够的余量。请千万要防止器件在接近ABS额定值的边缘条件下工作,否则很容易在后续使用中出现问题,尤其是可靠性方面。



原文出处:http://blog.sina.com.cn/s/blog_7dae8a480100w67t.html#post
优化以下代码,# 构建特征矩阵和标签向量 X = [] y = data['Rating'] for index, row in data.iterrows(): features = [] # 添加运行时长区间评分 if pd.notna(row['RunTime']): category1 = pd.cut([row['RunTime']], bins=bins1, labels=labels1)[0] if category1 in avg_runtime_ratings: features.append(avg_runtime_ratings[category1]) else: features.append(0) else: features.append(0) # 添加年份区间评分 if pd.notna(row['year']): category2 = pd.cut([row['year']], bins=bins2, labels=labels2)[0] if category2 in avg_year_ratings: features.append(avg_year_ratings[category2]) else: features.append(0) else: features.append(0) # 添加导演评分 if row.Director in avg_director_ratings: features.append(avg_director_ratings[row.Director]) else: features.append(0) # 添加编剧评分 if row.Writer in avg_writer_ratings: features.append(avg_writer_ratings[row.Writer]) else: features.append(0) # 添加主演评分 casts = row.TopTwoCasts.split(',') if len(casts) == 1: cast = casts[0] if cast in avg_casts_ratings: features.append(avg_casts_ratings[cast]) else: features.append(0) features.extend([0, 0]) else: cast_1, cast_2 = casts if cast_1 in avg_casts_ratings: features.append(avg_casts_ratings[cast_1] * 0.6) else: features.append(0) if cast_2 in avg_casts_ratings: features.append(avg_casts_ratings[cast_2] * 0.4) else: features.append(0) # 添加类型评分 genres = row.Genres.split(',') if len(genres) == 1: genre = genres[0] if genre in avg_genres_ratings: features.append(avg_genres_ratings[genre]) else: features.append(0) features.extend([0, 0]) elif len(genres) == 2: genre_1, genre_2 = genres if genre_1 in avg_genres_ratings: features.append(avg_genres_ratings[genre_1] * 0.6) else: features.append(0) if genre_2 in avg_genres_ratings: features.append(avg_genres_ratings[genre_2] * 0.4) else: features.append(0) features.append(0) else: genre_1, genre_2, genre_3 = genres if genre_1 in avg_genres_ratings: features.append(avg_genres_ratings[genre_1] * 0.4) else: features.append(0) if genre_2 in avg_genres_ratings: features.append(avg_genres_ratings[genre_2] * 0.3) else: features.append(0) if genre_3 in avg_genres_ratings: features.append(avg_genres_ratings[genre_3] * 0.3) else: features.append(0) X.append(features) X = pd.DataFrame(X)
06-01
可以优化的地方有: 1. 使用向量化操作代替迭代操作,可以显著提高代码效率; 2. 缩短代码长度和提高可读性,可以通过使用函数和列表推导式等技巧实现。 以下是优化后的代码: ```python import numpy as np def get_feature(row, avg_runtime_ratings, avg_year_ratings, avg_director_ratings, avg_writer_ratings, avg_casts_ratings, avg_genres_ratings): features = [] # 添加运行时长区间评分 runtime = row.get('RunTime', np.nan) category1 = pd.cut([runtime], bins=bins1, labels=labels1)[0] if pd.notna(runtime) else None if category1 in avg_runtime_ratings: features.append(avg_runtime_ratings[category1]) else: features.append(0) # 添加年份区间评分 year = row.get('year', np.nan) category2 = pd.cut([year], bins=bins2, labels=labels2)[0] if pd.notna(year) else None if category2 in avg_year_ratings: features.append(avg_year_ratings[category2]) else: features.append(0) # 添加导演评分 director = row.get('Director', None) features.append(avg_director_ratings.get(director, 0)) # 添加编剧评分 writer = row.get('Writer', None) features.append(avg_writer_ratings.get(writer, 0)) # 添加主演评分 casts = row.get('TopTwoCasts', '').split(',') if len(casts) == 1: cast = casts[0] features.append(avg_casts_ratings.get(cast, 0)) features.extend([0, 0]) else: cast_1, cast_2 = casts features.append(avg_casts_ratings.get(cast_1, 0) * 0.6) features.append(avg_casts_ratings.get(cast_2, 0) * 0.4) # 添加类型评分 genres = row.get('Genres', '').split(',') if len(genres) == 1: genre = genres[0] features.append(avg_genres_ratings.get(genre, 0)) features.extend([0, 0]) elif len(genres) == 2: genre_1, genre_2 = genres features.append(avg_genres_ratings.get(genre_1, 0) * 0.6) features.append(avg_genres_ratings.get(genre_2, 0) * 0.4) features.append(0) else: genre_1, genre_2, genre_3 = genres features.append(avg_genres_ratings.get(genre_1, 0) * 0.4) features.append(avg_genres_ratings.get(genre_2, 0) * 0.3) features.append(avg_genres_ratings.get(genre_3, 0) * 0.3) return features X = data.apply(lambda row: get_feature(row, avg_runtime_ratings, avg_year_ratings, avg_director_ratings, avg_writer_ratings, avg_casts_ratings, avg_genres_ratings), axis=1) X = pd.DataFrame(X.tolist()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值