Numpy 通用函数
frompyfunc的调用格式为frompyfunc(func, nin, nout),其中func是计算单个元素的函数,nin是此函数的输入参数的个数,nout是此函数的返回值的个数
# 注:用frompyfunc得到的函数计算出的数组元素的类型为object,因为frompyfunc函数无法保证Python函数返回的数据类型都完全一致
1. 创建通用函数(步骤)
# 定义一个python函数
import numpy as np def answer(a):
result = np.zeros_like(a)
result.flat = 42
return result ufunc = np.frompyfunc(answer, 1, 1)
print (ufunc(np.arange(4)))
# [array(42) array(42) array(42) array(42)]
# 对二维数组进行操作
A = ufunc(np.arange(4).reshape(2,2))
print (A)
#[[array(42) array(42)]
# [array(42) array(42)]]
# 解析:定义了一个Python函数。其中,我们使用zeros_like函数根据输入参数的形状初始化一个全为0的数组,然后利用ndarray对象的flat属性将所有的数组元素设置为“终极答案”其值为42
2. 通用函数的方法
通用函数有四个方法,不过只对输入两个参数、输出一个参数的ufunc对象有效
# add 上调用通用函数的方法
(1). reduce方法 (对数组的reduce计算结果等价于对数组元素求和)
import numpy as np
B = np.arange(9)
B1 = np.add.reduce(B)
print (B1)
# 36
(2). accumulate方法(可以递归作用于输入数组,将存储运算的中间结果并返回)
B2 = np.add.accumulate(B)
print (B2)
# [ 0 1 3 6 10 15 21 28 36]
(3). reduceat方法需要输入一个数组以及一个索引值列表作为参数
B3 = np.add.reduceat(B,[0,5,2,7])
print (B3)
# [10 5 20 15]
# 解析:第一步用到索引值列表中的0和5,实际上就是对数组中索引值在0到5之间的元素进行reduce操作。
print (np.add.reduce(B[0:5]))
# 第二步用到索引值5和2。由于2比5小,所以直接返回索引值为5的元素
print (np.add.reduce(B[5]))
# 第三步用到索引值2和7。这一步是对索引值在2到7之间的数组元素进行reduce操作
print (np.add.reduce(B[2:7]))
# 第四步用到索引值7。这一步是对索引值从7开始直到数组末端的元素进行reduce操作
print (np.add.reduce(B[7:]))
(4). outer方法返回一个数组,它的秩(rank)等于两个输入数组的秩的和。它会作用于两个输入数组之间存在的所有元素对
B4 = np.add.outer(np.arange(3),B)
print (B4)
#[[ 0 1 2 ..., 6 7 8]
# [ 1 2 3 ..., 7 8 9]
# [ 2 3 4 ..., 8 9 10]]
Numpy 通用函数的更多相关文章
- numpy通用函数
numpy的通用函数可以对数组进行向量化操作,可以提高数组元素的重复计算的效率. 一.numpy的算数运算符都是对python内置符的封装 算数运算符 >>> import nump ...
- 金融量化分析【day110】:NumPy通用函数
一.通用函数 能同时对数组中所有元素进行运算的函数 1.一元函数 1.sqrt 2.ceil 3.modf 4.isnan 5.abs 2.二元函数 1.maxinum 二.数学和统计方法 1.sum ...
- 初探numpy——numpy常用通用函数
numpy通用函数 快速的逐元素数组函数,也可以称为ufunc,对ndarray数据中的元素进行逐元素操作的函数 一元通用函数 函数名 描述 abs.fabs 取绝对值 sqrt 计算平方根,等同于a ...
- Python数据科学手册-Numpy数组的计算,通用函数
Python的默认实现(CPython)处理某些操作非常慢,因为动态性和解释性, CPython 在每次循环必须左数据类型的检查和函数的调度..在编译是进行这样的操作.就会加快执行速度. 通用函数介绍 ...
- 科学计算工具-Numpy初探
Numpy基础数据结构 Numpy数组是一个多维数组,称为ndarray.其由两部分组成: 实际的数据 描述这些数据的原数据 导入该库: import numpy as np 多维数组ndarray ...
- NumPy的基本用法
NumPy简介:NumPy是高性能科学计算和数据分析的基础包.是pandas等其他各种工具的基础NumPy主要功能:ndarray,一个多维数组结构,高效且节省空间无需循环对数组数据进行快速运算的数学 ...
- 01. Numpy模块
1.科学计算工具-Numpy基础数据结构 1.1.数组ndarray的属性 NumPy数组是一个多维数组对象,称为ndarray.其由两部分组成:① 实际的数据② 描述这些数据的元数据 注意数组格式, ...
- NumPy 基础用法
NumPy 是高性能科学计算和数据分析的基础包. 它是 pandas 等其他各种工具的基础. 主要功能: ndarray 一个多维数组结构, 高效且节省空间 无需循环对整组数据进行快速运算的数学函数 ...
- 最直白、最易懂的话带你认识和学会---数据分析基础包之numpy的使用
前言 numpy是一个很基础很底层的模块,其重要性不言而喻,可以说对于新手来说是最基础的入门必须要学习的其中之一.在很多数据分析,深度学习,机器学习亦或是人工智能领域的模块中,很多的底层都会用到这个模 ...
随机推荐
- shell编程awk基础介绍
awk介绍 报告生成器,格式化文本输出 处理机制类似sed命令,自带循环处理 读入一行处理一行然后自动读取下一行再进行处理 sed命令换行的标识是固定的,只能是回车换行. awk里面的换行 ...
- node学习系列 搭建express
搭建express express官网API http://expressjs.com/zh-cn/ 1.在文件夹下新建一个packages.json文件 内容为: {} 然后执行 yarn add ...
- oralce 批量更新
<update id="batchUpdateCompensatoryData" parameterType="java.util.List"> & ...
- 15-Python3 编程第一步
2018-11-20 11:42:06 ''' 肥婆纳妾数列 斐波那契数列,又称黄金分割数列:这个数列从第3项开始,每一项都等于前两项之和, 随着数列项数的增加,前一项与后一项之比越来越逼近黄金分割的 ...
- windows server 2008 R2如何更换系统界面语言/中文换英文
下面我们来讲解一下如何将中文系统转化成日文.韩文.英文等其它语言界面的系统. 以windows server 2008 R2系统中文变英文为例: 1.到微软官方下载:Windows Server 20 ...
- JMeter开发插件——图片验证码识别
我们在性能测试中总会时不时地遭遇到来自于应用系统的各种阻碍,图片验证码就是一类最常见的束缚,登录或交易时需要按照图片中的内容输入正确的验证信息后,数据才可以提交成功,这使得许多性能测试工具只能望而却步 ...
- python中参数传递之位置传递、关键字传递、包裹传递与解包裹
原文地址https://blog.csdn.net/love666666shen/article/details/77131487 1.位置与关键字传递 (1)位置传递:先用形式参数定义,然后在调用时 ...
- 前端 json 导出 excel
参考:https://blog.csdn.net/abel_yang/article/details/78684786 在github上有大神提供现成的插件,非常感谢 https://cuikangj ...
- nginx 日志详解及自定义日志配置
nginx的log日志分为access log 和 error log 其中access log 记录了哪些用户,哪些页面以及用户浏览器.ip和其他的访问信息 error log 则是记录服务器错误日 ...
- sqlmap常用技巧整理
言 通过在乌云网上出现的很多SQL注入漏洞,因此来总结一下,大致使用SQLMAP所遇到的参数. 基本结构 基本SQLMAP的使用方式就如下所示,使用参数式的方式,按需求添加. 12 sqlmap.py ...