博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Py中map与np.rival学习
阅读量:7243 次
发布时间:2019-06-29

本文共 1392 字,大约阅读时间需要 4 分钟。

转自:廖雪峰网站

1.map/reduce

map()函数接收两个参数,一个是函数,一个是Iterablemap将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个list [1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map()实现如下:

>>> def f(x):...     return x * x...>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])>>> list(r)[1, 4, 9, 16, 25, 36, 49, 64, 81]

map()传入的第一个参数是f,即函数对象本身。由于结果r是一个IteratorIterator是惰性序列,因此通过list()函数让它把整个序列都计算出来并返回一个list。

把这个list所有数字转为字符串:

>>> list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))['1', '2', '3', '4', '5', '6', '7', '8', '9']

再看reduce的用法。reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:

reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

 

2.numpy.ravel()展平函数

Return a contiguous flattened array.

numpy.ravel(aorder='C')

>>> x = np.array([[1, 2, 3], [4, 5, 6]])>>> print(np.ravel(x))[1 2 3 4 5 6]
>>> print(x.reshape(-1))[1 2 3 4 5 6]

 

3.例子

d = sio.loadmat('ex5data1.mat')    return map(np.ravel, [d['X'], d['y'], d['Xval'], d['yval'], d['Xtest'], d['ytest']])

 

关于将mat里的数据转换为dataFrame做了以下:

tX,ty=pd.DataFrame([mat.get("X"),mat.get("y")])#报错:Must pass 2-d input#因为数据框是二维的,a=pd.DataFrame({
"name":mat['y']})#报错:ValueError: If using all scalar values, you must pass an indexa=pd.DataFrame({
"name":mat['y']},index=[0])#报错:Exception: Data must be 1-dimensional#解决:a=pd.DataFrame({
"name":np.ravel(mat['y'])})#需要展平为(12,)

转载于:https://www.cnblogs.com/BlueBlueSea/p/10457023.html

你可能感兴趣的文章
Tomcat集群
查看>>
权限管理、特殊权限、FACL
查看>>
我的友情链接
查看>>
E: Sub-process /usr/bin/dpkg returned an error ...
查看>>
php各种编码
查看>>
NoSQL 简介
查看>>
python设计模式(四)--代理模式(中)
查看>>
netstat
查看>>
电脑显示器颜色失常的原因
查看>>
/bin/sh: bad interpreter: 没有那个文件或目录
查看>>
记一次linux服务器无法登陆
查看>>
nginx日志切割
查看>>
控制允许将新计算机加入域的权限
查看>>
Flash 平台音视频直播的实现
查看>>
centos上安装nginx服务器实现虚拟主机和域名重定向
查看>>
Nginx 访问认证
查看>>
Java循环练习:打印图案-5
查看>>
安装locate命令
查看>>
常用控件--按钮(待完善)
查看>>
简述计算器组成部件
查看>>