美文网首页Numpyweb服务器
NumPy( 创建及基本函数)

NumPy( 创建及基本函数)

作者: GHope | 来源:发表于2018-11-09 00:01 被阅读12次

    要点

    NumPy之于数值计算特别重要的原因之一,是因为它可以高效处理大数组的数据。

    NumPy是在一个连续的内存块中存储数据,独立于其他Python内置对象。NumPy的C语言编写的算法库可以操作内存,而不必进行类型检查或其它前期工作。比起Python的内置序列, NumPy数组使用的内存更少。

    NumPy可以在整个数组上执行复杂的计算,而不需要Python的for循环。

    性能对比

    基于NumPy的算法要比纯Python快10到100倍(甚至更快),并且使用的内存更少。

     import numpy as np
    
     %timeit my_arr = np.arange(1000000)
    
     %timeit my_list = list(range(1000000))
    
    性能对比

    ndarray

    NumPy的ndarray:一种多维数组对象。

    NumPy重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器。你可以利用这种数组对整块数据执行一些数学运算,其语法跟标量元素之间的运算一样。

    import numpy as np
    
    data = np.random.randn(2, 3)
    
    array

    ndarray是一个通用的同构数据多维容器,所有元素必须是相同类型的

    # 取维度大小 
    data.shape 
    # 取数据数据类型 
    data.dtype
    
    多维数组容器

    创建ndarray(强转列表)

     data1 = [5,8.4,9,233]
    
     arr = np.array(data1)
    
    创建ndarray

    嵌套序列(比如由一组等长列表组成的列表)将会被转换为一个多维数组嵌套序列(比如由一组等长列表组成的列表)将会被转换为一个多维数组

    data2 = [[1,2,3,4],[5,6,7,8]]
    
    arr1 = np.array(data2)
    
    # 取维度 
    arr1.ndim 
    arr1.shape 
    arr1.dtype
    
    多维数组

    zeros和ones分别可以创建指定长度或形状的全0或全1数组。empty可以创建一个没有任何具体值的数组。np.empty返回的都是一些未初始化的垃圾值。

    np.zeros(10)
    
    np.ones((3,6))
    
    np.empty((2,3,2))
    
    np.arange(15)
    
    基本函数
    函数 说明
    array 将输入数据(列表、元组、数组或其它序列类型)转换为ndarry。推断除dtype或特别指定dtype。默认直接赋值输入数据
    asarry 将输入转化为ndarray,如果输入本身是一个ndarray就不在复制
    arange 类似于内置的range,但返回的是一个ndarray而非list
    ones,ones_like 根据指定的形状和dtype创建一个全一数组。ones_like以另一个数组为参数,并根据其形状和dtype创建一个全一数组
    zeros,zeros_like 类似于ones和ones_like,只不过产生的是全0数组而已
    empty,empty_like 创建新数组,只分配内存空间但不填充任何值
    full,full_like 用full value中的所有值,根据指定的形状和dtype创建一个数组。full_like使用另一个数组,用相同的形状和dtype创建
    eye,identity 创建一个正方的N*N单位矩阵(对角线为一,其余为零)

    相关文章

      网友评论

        本文标题:NumPy( 创建及基本函数)

        本文链接:https://www.haomeiwen.com/subject/tayyxqtx.html