• Py中map与np.rival学习


    转自:廖雪峰网站

    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]

    2020-7-2更新————

    https://www.cnblogs.com/mzct123/p/8659193.html 

    ravel和flatten的区别:

    都是进行展平操作,但是ravel不会分配新的内存,而是不同指针指向同一个内存空间,flatten则会重新复制一个数据对象,所以要用flatten更多。

    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 index
    
    a=pd.DataFrame({"name":mat['y']},index=[0])
    #报错:Exception: Data must be 1-dimensional
    
    #解决:
    a=pd.DataFrame({"name":np.ravel(mat['y'])})
    #需要展平为(12,)

  • 相关阅读:
    JavaScript表单验证年龄
    PHP会话处理相关函数介绍
    SpringCloud(第一天)
    springboot加强
    SpringBoot的第一个demo
    ElasticSearch(分布式全文搜索引擎)
    Redis集群
    NoSql和Redis
    ElementUI实现CRUD(修改前端页面),前后台解决跨域问题
    SSM+ElementUI综合练习和Swagger和postman的使用(第二天)
  • 原文地址:https://www.cnblogs.com/BlueBlueSea/p/10457023.html
Copyright © 2020-2023  润新知