python数据分析numpy基础之fabs用法和示例

1 python数据分析numpy基础之fabs用法和示例

python的numpy库的fabs()函数用于计算多维数组的每个元素的绝对值,绝对值都为浮点数,并且不能计算复数的绝对值,速度会比abs()快。

用法

numpy.fabs(x, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj]) = <ufunc 'fabs'>

描述

numpy.fabs()对数组的每个元素(非复数)计算绝对值,并且绝对值为浮点数,返回ndarray数组或标量。

入参

x:必选,array-like

需计算绝对值的数字数组,可以是ndarray或类ndarray(比如元组、列表等)或标量,不能为复数;

out:可选,ndarray

存储绝对值结果的数组。若提供,则需为ndarray,out元素类型必须为浮点数,与返回值一致,若未提供,返回新的ndarray;

where:可选,bool

表示是取哪的结果作为出参,默认为True,表示abs绝对值运算结果作为出参;若为False,若传了out则结果取out的值,若未传out则结果取最近一次的out的值,最近一次out若为out=None则取随机值;

出参

返回x的浮点型绝对值,x是array-lie则返回ndarray,若为标量则返回标量。

1.1 入参x

np.fabs()的入参x为必选入参,表示需计算绝对值的ndarray或元组或列表或标量。可以是整数、浮点数,不能为复数。

>>> import numpy as np
>>> np.abs(-1)
1
# 标量,通过np.fabs()计算绝对值
>>> np.fabs(-1)
1.0
# 元组,通过np.fabs()计算绝对值
>>> np.fabs((-1,-2,-3))
array([1., 2., 3.])
# 列表,通过np.fabs()计算绝对值
>>> np
### Python 常用库及函数列表(适用于机试场景) 在机试环境中,熟悉并掌握一些常用的标准库及其核心功能是非常重要的。以下是针对机试场景总结的一些常见 Python函数: #### 1. 数据处理类 - **`list` `tuple` 的操作** - 列表推导式用于快速生成新列表: ```python squares = [x**2 for x in range(10)] ``` - 排序方法:`sort()` 或者内置函数 `sorted()` - 参数支持自定义排序逻辑:`key=lambda x: ...`, `reverse=True/False`[^1]。 - **字符串处理 (`str`)** - 方法如 `split()`, `join()`, `replace()`, `strip()`, `find()`, `count()`, `startswith()`, `endswith()` 等都是高频使用的工具。 - 正则表达式的应用通过标准库 `re` 实现模式匹配、替换等功能: ```python import re pattern = r'\d+' result = re.findall(pattern, 'abc123def456') ``` #### 2. 数学运算类 - **数值计算** - 使用模块 `math`: 提供诸如平方根(`sqrt`), 对数(`log`), 绝对值(`fabs`), 取整(`ceil/floor`)等基本数学函数。 - 复杂数学问题可借助第三方扩展包 NumPy (尽管通常不被允许导入),但在某些情况下可以利用纯 python 完成矩阵乘法或其他线性代数任务。 - **随机数生成** - 模块 `random` 支持伪随机序列生成器的功能实现,比如均匀分布采样 `randint(a,b)` 或洗牌操作 `shuffle(list)`。 #### 3. 文件读写与数据存储 - **文件 I/O** - 打开文件的方式有两种主要形式——传统方式使用 open 函数;上下文管理器推荐做法如下所示: ```python with open('file.txt', mode='r') as f: content = f.readlines() ``` - **JSON 解析** - 当涉及到结构化数据交换时,json 是最常采用的数据格式之一。相应地,Python 自带 json 模块能够轻松完成对象到 JSON 字符串之间的转换工作: ```python import json data = {'name': 'Alice'} serialized_data = json.dumps(data) deserialized_data = json.loads(serialized_data) ``` #### 4. 时间日期相关 - **时间戳与时区调整** - datetime 模块提供了强大的 API 来创建、解析以及格式化时间日期信息。例如获取当前 UTC 时间或者指定偏移量后的本地时间点: ```python from datetime import datetime, timedelta now_utc = datetime.utcnow() local_time_plus_one_hour = now_utc + timedelta(hours=1) formatted_date = local_time_plus_one_hour.strftime('%Y-%m-%d %H:%M:%S') ``` --- ### 示例代码片段展示如何综合运用上述知识点解决实际问题 假设我们面临一道关于拓扑排序的任务安排题目,则可能需要用到集合去重、图遍历算法 DFS/BFS 结合优先队列来决定最终顺序。下面给出一个简化版解决方案作为参考: ```python from collections import defaultdict, deque def topological_sort(tasks_dependencies): graph = defaultdict(set) indegree = {node: 0 for node in tasks_dependencies} # 构建邻接表表示的有向无环图(DAG) for task_from, task_to_list in tasks_dependencies.items(): for task_to in task_to_list: if task_to not in graph[task_from]: graph[task_from].add(task_to) indegree[task_to] += 1 zero_indegree_queue = deque([k for k,v in indegree.items() if v==0]) sorted_result = [] while zero_indegree_queue: current_task = zero_indegree_queue.popleft() sorted_result.append(current_task) for neighbor in graph[current_task]: indegree[neighbor]-=1 if indegree[neighbor]==0: zero_indegree_queue.append(neighbor) return ''.join(sorted(sorted_result)) if len(sorted_result)==len(indegree) else "" ``` 此段程序实现了基于入度计数的方法来进行简单的字母字符间的相对位置约束下的全排列求解过程[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值