最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • Python NumPy教程之数组的创建详解

    【相关推荐:python3视频教程

    使用 List 创建数组

    数组用于在一个变量中存储多个值。Python 没有对数组的内置支持,但可以使用 Python 列表代替。

    例子 :

    arr = [1, 2, 3, 4, 5]
    arr1 = ["geeks", "for", "geeks"]
    # 用于创建数组的 Python 程序
     
    # 使用列表创建数组
        arr=[1, 2, 3, 4, 5]
        for i in arr:
            print(i)

    输出:

    1
    2
    3
    4
    5

    使用数组函数创建数组

    array(data type, value list) 函数用于创建一个数组,其参数中指定了数据类型和值列表。

    例子 :

    # 演示 array() 工作的 Python 代码
      
    # 为数组操作导入“array”
    import array
      
    # 用数组值初始化数组
    # 用有符号整数初始化数组
    arr = array.array('i', [1, 2, 3]) 
     
    # 打印原始数组
    print ("The new created array is : ",end="")
    for i in range (0,3):
        print (arr[i], end=" ")
     
    print ("r")

    输出:

    The new created array is : 1 2 3 1 5

    使用 numpy 方法创建数组

    NumPy 提供了几个函数来创建具有初始占位符内容的数组。这些最大限度地减少了增长阵列的必要性,这是一项昂贵的操作。例如:np.zeros、np.empty等。

    numpy.empty(shape, dtype = float, order = ‘C’): 返回给定形状和类型的新数组,具有随机值。

    # 说明 numpy.empty 方法的 Python 代码
     
    import numpy as geek
     
    b = geek.empty(2, dtype = int)
    print("Matrix b : n", b)
     
    a = geek.empty([2, 2], dtype = int)
    print("nMatrix a : n", a)
     
    c = geek.empty([3, 3])
    print("nMatrix c : n", c)

    输出 :

    Matrix b :
    [ 0 1079574528]

    Matrix a :
    [[0 0]
    [0 0]]

    Matrix a :
    [[ 0. 0. 0.]
    [ 0. 0. 0.]
    [ 0. 0. 0.]]

    numpy.zeros(shape, dtype = None, order = ‘C’): 返回给定形状和类型的新数组,带零。

    # 说明 numpy.zeros 方法的 Python 程序
     
    import numpy as geek
     
    b = geek.zeros(2, dtype = int)
    print("Matrix b : n", b)
     
    a = geek.zeros([2, 2], dtype = int)
    print("nMatrix a : n", a)
     
    c = geek.zeros([3, 3])
    print("nMatrix c : n", c)

    输出 :

    Matrix b :
    [0 0]

    Matrix a :
    [[0 0]
    [0 0]]

    Matrix c :
    [[ 0. 0. 0.]
    [ 0. 0. 0.]
    [ 0. 0. 0.]]

    重塑数组

    我们可以使用reshape方法来重塑数组。考虑一个形状为 (a1, a2, a3, …, aN) 的数组。我们可以重新整形并将其转换为另一个形状为 (b1, b2, b3, …, bM) 的数组。

    唯一需要的条件是: a1 x a2 x a3 … x aN = b1 x b2 x b3 … x bM 。(即数组的原始大小保持不变。)

    numpy.reshape(array, shape, order = ‘C’): 在不更改数组数据的情况下对数组进行整形。

    # 说明 numpy.reshape() 方法的 Python 程序
     
    import numpy as geek
     
    array = geek.arange(8)
    print("Original array : n", array)
     
    # 具有 2 行和 4 列的形状数组
    array = geek.arange(8).reshape(2, 4)
    print("narray reshaped with 2 rows and 4 columns : n", array)
     
    # 具有 2 行和 4 列的形状数组
    array = geek.arange(8).reshape(4 ,2)
    print("narray reshaped with 2 rows and 4 columns : n", array)
     
    # 构造 3D 数组
    array = geek.arange(8).reshape(2, 2, 2)
    print("nOriginal array reshaped to 3D : n", array)

    输出 :

    Original array :
    [0 1 2 3 4 5 6 7]

    array reshaped with 2 rows and 4 columns :
    [[0 1 2 3]
    [4 5 6 7]]

    array reshaped with 2 rows and 4 columns :
    [[0 1]
    [2 3]
    [4 5]
    [6 7]]

    Original array reshaped to 3D :
    [[[0 1]
    [2 3]]

    [[4 5]
    [6 7]]]

    为了创建数字序列,NumPy 提供了一个类似于 range 的函数,它返回数组而不是列表。

    arange返回给定间隔内均匀分布的值。长是指定的。

    linspace 返回给定间隔内均匀分布的值。编号_ 的元素被返回。

    arange([start,] stop[, step,][, dtype]): 根据间隔返回一个具有均匀间隔元素的数组。提到的间隔是半开的,即[开始,停止)

    # 说明 numpy.arange 方法的 Python 编程
     
    import numpy as geek
     
    print("An", geek.arange(4).reshape(2, 2), "n")
     
    print("An", geek.arange(4, 10), "n")
     
    print("An", geek.arange(4, 20, 3), "n")

    输出 :

    A
    [[0 1]
    [2 3]]

    A
    [4 5 6 7 8 9]

    A
    [ 4 7 10 13 16 19]

    numpy.linspace(start, stop, num = 50, endpoint = True, retstep = False, dtype = None): 在间隔中均匀返回数字空间。类似于 arange 但不是 step 它使用样本编号。

    # 说明 numpy.linspace 方法的 Python 编程
     
    import numpy as geek
     
    # 重新设置为 True
    print("Bn", geek.linspace(2.0, 3.0, num=5, retstep=True), "n")
     
    # 长期评估 sin()
    x = geek.linspace(0, 2, 10)
    print("An", geek.sin(x))

    输出 :

    B
    (array([ 2. , 2.25, 2.5 , 2.75, 3. ]), 0.25)

    A
    [ 0. 0.22039774 0.42995636 0.6183698 0.77637192 0.8961922
    0.9719379 0.99988386 0.9786557 0.90929743]

    展平数组

    我们可以使用展平方法将数组的副本折叠成一维。它接受 order 参数。默认值为“C”(用于行优先顺序)。使用“F”表示列主要顺序。

    numpy.ndarray.flatten(order = ‘C’) :返回折叠成一维的数组的副本。

    # 说明 numpy.flatten() 方法的 Python 程序
     
    import numpy as geek
     
    array = geek.array([[1, 2], [3, 4]])
     
    # 使用扁平化方法
    array.flatten()
    print(array)
     
    #使用扁平化方法
    array.flatten('F')
    print(array)

    输出 :

    [1, 2, 3, 4]
    [1, 3, 2, 4]

    在 Numpy 中创建数组的方法

    功能 描述
    empty() 返回给定形状和类型的新数组,而不初始化条目
    empty_like() 返回与给定数组具有相同形状和类型的新数组
    eye() 返回一个二维数组,其中对角线为 1,其他位置为 0。
    identity() 返回标识数组
    ones() 返回一个给定形状和类型的新数组,用一个填充
    one_like() 返回与给定数组具有相同形状和类型的数组
    zeros() 返回给定形状和类型的新数组,用零填充
    zeros_like() 返回与给定数组具有相同形状和类型的零数组
    full_like() 返回与给定数组具有相同形状和类型的完整数组。
    array() 创建一个数组
    asarray() 将输入转换为数组
    asanyarray() 将输入转换为 ndarray,但通过 ndarray 子类
    ascontiguousarray() 返回内存中的连续数组(C 顺序)
    asmatrix() 将输入解释为矩阵
    copy() 返回给定对象的数组副本
    frombuffer() 将缓冲区解释为一维数组
    fromfile() 从文本或二进制文件中的数据构造数组
    fromfunction() 通过在每个坐标上执行函数来构造数组
    fromiter() 从可迭代对象创建一个新的一维数组
    fromstring() 字符串中的文本数据初始化的新一维数组
    loadtxt() 从文本文件加载数据
    arange() 在给定间隔内返回均匀间隔的值
    linspace() 在指定的时间间隔内返回均匀分布的数字
    logspace() 返回在对数刻度上均匀分布的数字
    geomspace() 返回在对数尺度上均匀分布的数字(几何级数)
    meshgrid() 从坐标向量返回坐标矩阵
    mgrid() nd_grid 实例,它返回一个密集的多维“网格”
    ogrid() nd_grid 实例,它返回一个开放的多维“meshgrid”
    diag() 提取对角线或构造对角线数组
    diagflat() 创建一个二维数组,将扁平化输入作为对角线
    tri() 一个数组,在给定的对角线处和下方都有一个,在其他地方有零
    tril() 数组的下三角形
    triu() 数组的上三角形
    vander() 生成范德蒙德矩阵
    mat() 将输入解释为矩阵
    bmat() 从字符串、嵌套序列或数组构建矩阵对象

    【相关推荐:Python3视频教程 】

    以上就是Python NumPy教程之数组的创建详解的详细内容,更多请关注编程网其它相关文章!

    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » Python NumPy教程之数组的创建详解
    • 5会员总数(位)
    • 22375资源总数(个)
    • 770本周发布(个)
    • 77 今日发布(个)
    • 176稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情