• 创建ndarray


    Numpy最重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器,是一个通用的同构数据多维容器,也就是说,其中的所有元素必须是相同类型的。

    创建数组最简单的方法就是array函数,它接受一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的Numpy数组。

    以一个列表为例:

    1 In [2]: import numpy as np
    2 
    3 In [3]: simple = [1,2.3,4,5]
    4 
    5 In [4]: arr = np.array(simple)
    6 
    7 In [5]: arr  
    8 Out[5]: array([ 1. ,  2.3,  4. ,  5. ])

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

     1 In [6]: simple1 = [[1,2,3,4],[5,6,7,8]]
     2 
     3 In [7]: arr1 = np.array(simple1)
     4 
     5 In [8]: arr1
     6 Out[8]: 
     7 array([[1, 2, 3, 4],
     8        [5, 6, 7, 8]])
     9 
    10 In [9]: arr1.ndim  获得数组的维数
    11 Out[9]: 2
    12 
    13 In [10]: arr1.shape
    14 Out[10]: (2, 4)

    除非显示说明,np.array会尝试为新建的数组推断出一个较为合适的数据类型,数据类型保存在一个特殊的dtype对象中。

    1 In [12]: arr.dtype
    2 Out[12]: dtype('float64')
    3 
    4 In [13]: arr1.dtype
    5 Out[13]: dtype('int64')

    除了np.array之外,还有一些函数也可以新建数组。比如zeros和ones分别可以创建指定长度或形状的全0或全1数组。empty可以创建一个没有任何具体值的数组。要用这些方法创建多维数组,只需传入一个表示形状的元祖即可。

     1 In [14]: np.zeros(10)
     2 Out[14]: array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.])
     3 
     4 In [15]: np.ones(10)
     5 Out[15]: array([ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.])
     6 
     7 In [16]: np.empty((2,3))
     8 Out[16]: 
     9 array([[  0.00000000e+000,   8.20622089e-317,   4.65914971e-317],
    10        [  6.90846568e-310,   6.90847131e-310,   1.25836781e-316]])

    arange是Python内置函数range的数组版

    1 In [17]: np.arange(10)
    2 Out[17]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

    数组创建函数

    函数 说明
    array 将输入数据(列表、元祖、数组或其他序列类型)转换为ndarray
    asarray  将输入转换为ndarray,如果输入本身就是一个ndarray就不进行复制
    arange 类似于内置的range,但返回的是一个ndarray而不是列表
    ones、ones_like 根据指定的形状和dtype创建一个全1数组。ones_like以另一个数组为参数,并根据其形状和dtype创建一个全1数组
    zeros、zeros_like 类似于ones和ones_like,只不过产生的是全0数组而已
    empty、empty_like 创建新数组,只分配内存空间但不填充任何值
    eye、identity     创建一个正方的NxN单位矩阵(对角线为1,其余为0)
  • 相关阅读:
    八数码问题及其扩展
    java注释
    康托展开和逆康托展开
    模线性方程组
    欧拉函数
    扩展欧几里德
    商城项目实战 | 2.2 Android 仿京东商城——自定义 Toolbar (二)
    商城项目实战 | 2.1 Android 仿京东商城——自定义 Toolbar (一)
    商城项目实战 | 1.1 Android 仿京东商城底部布局的选择效果 —— Selector 选择器的实现
    Android使用Path实现仿最新淘宝轮播广告底部弧形有锯齿的问题以及解决办法
  • 原文地址:https://www.cnblogs.com/yu-1104/p/7867800.html
Copyright © 2020-2023  润新知