Python库numpy之一

NumPy数组创建函数

一维数组创建函数

一维数组创建函数,例如numpy.linspace 和 numpy.arange,通常需要至少两个输入,start和stop。

numpy.arange

按固定的增量,创建数组。
词法:numpy.arange([start, ]stop, [step, ]dtype=None, *, device=None, like=None)

常见的arange的调用形式:

  • arange(stop):在半开区间[0, stop],即包含start但不包含stop的区间内,生成值序列。
  • arange(start, stop):在半开区间[start, stop)内,生成值序列。
  • arange(start, stop, step) :在半开区间 [start, stop) 内,生成值,值之间的间距是step序列。

变量说明

  • start,该参数类型是整数或实数, 是可选的
    数据序列区间开始。区间包括该值。默认起始值​​为 0。

  • stop,该参数类型是整数或实数
    数据序列区间结束。该区间不包括该值。如果step不是整数,浮点舍入会影响out的长度。

  • step,该参数类型是整数或实数, 是可选的
    数据序列值之间的间距。对于任何输出 out,这是两个相邻值之间的距离,out[i+1] - out[i]。默认步长为1。如果将step指定为位置参数,则还必须给出 start。

  • dtype,该参数类型是dtype, 是可选的
    输出数组的类型。如果未给出 dtype,则从其他输入参数推断数据类型。

  • device,该参数类型是字符串, 是可选的
    该参数表示放置创建的数组的设备。默认值:无。仅适用于 Array-API 互操作性,因此彻底该参数,则必须为“cpu”。

  • like,该参数类型是类数组, 是可选的
    允许创建非 NumPy 数组的引用对象。
    如果该like参数支持 array_function 协议,则结果将由它定义。在这种情况下,给函数确保创建的数组与like参数兼容。

应用例子

import numpy as np

if __name__ == "__main__":
    a1 = np.arange(5, dtype=float)
    a2 = np.arange(5, dtype=int)

    a3 = np.arange(1, 5, dtype=int)
    a4 = np.arange(1, 5, dtype=float)
    
    print("a1 type: {0}, size: {1}, values: {2}".format(type(a1), a1.size, a1))
    print("a2 type: {0}, size: {1}, values: {2}".format(type(a2), a2.size, a2))
    print("a3 type: {0}, size: {1}, values: {2}".format(type(a3), a3.size, a3))
    print("a4 type: {0}, size: {1}, values: {2}".format(type(a4), a4.size, a4))

    print("-*-*"*20)
    
    arr1 = np.arange(0, 5, 0.5, dtype=float)
    arr2 = np.arange(-3, 3, 1, dtype=int)

    arr3 = np.arange(-1, 1, 0.4, dtype=int)
    arr4 = np.arange(-1, 1, 0.4, dtype=float)
    
    print("arr1 type: {0}, size: {1}, values: {2}".format(type(arr1), arr1.size, arr1))
    print("arr2 type: {0}, size: {1}, values: {2}".format(type(arr2), arr2.size, arr2))
    print("arr3 type: {0}, size: {1}, values: {2}".format(type(arr3), arr3.size, arr3))
    print("arr4 type: {0}, size: {1}, values: {2}".format(type(arr4), arr4.size, arr4))

程序运行产生的屏幕显示

C:\>python numpy_1.py
a1 type: <class 'numpy.ndarray'>, size: 5, values: [0. 1. 2. 3. 4.]
a2 type: <class 'numpy.ndarray'>, size: 5, values: [0 1 2 3 4]
a3 type: <class 'numpy.ndarray'>, size: 4, values: [1 2 3 4]
a4 type: <class 'numpy.ndarray'>, size: 4, values: [1. 2. 3. 4.]
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
arr1 type: <class 'numpy.ndarray'>, size: 10, values: [0.  0.5 1.  1.5 2.  2.5 3.  3.5 4.  4.5]
arr2 type: <class 'numpy.ndarray'>, size: 6, values: [-3 -2 -1  0  1  2]
arr3 type: <class 'numpy.ndarray'>, size: 5, values: [-1  0  1  2  3]
arr4 type: <class 'numpy.ndarray'>, size: 5, values: [-1.  -0.6 -0.2  0.2  0.6]

numpy.linspace

numpy.linspace返回在给定间隔内,均匀间隔的值。

词法:numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0, *, device=None)

  • start,该参数类型是类数组
    序列的起始值。

  • stop,该参数类型是类数组
    如果endpoint不是False,则stop是列的结束值。
    在endpoint不是False的情况下,序列不包括最后一个num + 1样本。当endpoint为 False 时,步长会发生变化。

  • num,该参数类型是int, 是可选的
    要生成的样本数。默认值为 50。必须为非负数。

  • endpoint,该参数类型是bool, 是可选的
    如果endpoint为True,则stop是最后一个样本。否则,stop不包括在内。默认为 True。

  • retstep,该参数类型是bool, 是可选的
    如果retstep为True,则该函数返回两个值,即 (samples, step),其中 step 是样本之间的间距。

  • dtype,该参数类型是dtype, 是可选的
    dtype指定输出数组的类型。如果未给出 dtype,则从参数start和stop推断数据类型。推断的 dtype 永远不会是整数;即使参数会生成整数数组,也会选择 float。

  • axis,该参数类型是int, 是可选的
    结果中用于存储样本的轴。仅当参数start或stop是类数组时,才相关。默认情况下 (0),样本将沿着新轴插入。使用 -1 获得末端的轴。

  • device,该参数类型是字符串, 是可选的
    该参数表示放置创建的数组的设备。默认值:无。仅适用于 Array-API 互操作性,因此彻底该参数,则必须为“cpu”。

应用例子

import numpy as np

if __name__ == "__main__":
    a1 = np.linspace(2.0, 3.0, num=5)
    a2 = np.linspace(2.0, 3.0, num=5, endpoint=False)
    a3, step = np.linspace(2.0, 3.0, num=5, retstep=True)
    
    print("a1 type: {0}, size: {1}, values: {2}".format(type(a1), a1.size, a1))
    print("a2 type: {0}, size: {1}, values: {2}".format(type(a2), a2.size, a2))
    print("a3 type: {0}, size: {1}, values: {2} step: {3}".format(type(a3), a3.size, a3, step))

    start = np.linspace(1, 3, num = 3)
    stop = np.linspace(50, 80, num = 3)
    print("start type: {0}, size: {1}, values: {2}".format(type(start), start.size, start))
    print("stop type: {0}, size: {1}, values: {2}".format(type(stop), stop.size, stop))
    
    r1 = np.linspace(start, stop, num = 3)
    r2 = np.linspace(start, stop, num = 5)
    print("r1 type: {0}, size: {1}".format(type(r1), r1.size))
    print(r1)

    print("r2 type: {0}, size: {1}".format(type(r2), r2.size))
    print(r2)

程序运行产生的屏幕显示

C:\>python numpy_2.py
a1 type: <class 'numpy.ndarray'>, size: 5, values: [2.   2.25 2.5  2.75 3.  ]
a2 type: <class 'numpy.ndarray'>, size: 5, values: [2.  2.2 2.4 2.6 2.8]
a3 type: <class 'numpy.ndarray'>, size: 5, values: [2.   2.25 2.5  2.75 3.  ] step: 0.25
start type: <class 'numpy.ndarray'>, size: 3, values: [1. 2. 3.]
stop type: <class 'numpy.ndarray'>, size: 3, values: [50. 65. 80.]
r1 type: <class 'numpy.ndarray'>, size: 9
[[ 1.   2.   3. ]
 [25.5 33.5 41.5]
 [50.  65.  80. ]]
r2 type: <class 'numpy.ndarray'>, size: 15
[[ 1.    2.    3.  ]
 [13.25 17.75 22.25]
 [25.5  33.5  41.5 ]
 [37.75 49.25 60.75]
 [50.   65.   80.  ]]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值