NumPy创建数组

本文介绍了如何使用NumPy库快速创建不同类型的数组,包括空数组、全零全一数组,以及从现有数据和数值范围创建。涵盖了numpy.empty、numpy.zeros、numpy.ones、numpy.asarray、numpy.frombuffer、numpy.fromiter和numpy的范围生成函数如arange、linspace和logspace。
摘要由CSDN通过智能技术生成

NumPy创建数组

一、常见创建

numpy.empty

numpy.empty 方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组:

numpy.empty(shape, dtype = float, order = 'C')

数组元素为随机值。

numpy.zeros

创建指定大小的数组,数组元素以 0 来填充:

numpy.zeros(shape, dtype = float, order = 'C')

numpy.ones

创建指定形状的数组,数组元素以 1 来填充:

numpy.ones(shape, dtype = None, order = 'C')

代码演示

import numpy as np

# empty
data1 = np.empty([3, 4], dtype=int)
print(data1)
# zeros
data2 = np.zeros((3, 4), dtype=int)
print(data2)
# ones
data3 = np.ones([3, 4], dtype=int)
print(data3)
"""
[[4128860 6029375 3801157 5242972]
 [7602297 7274600 5242990 7274610]
 [6619242 7602275 7602268 7536741]]
[[0 0 0 0]
 [0 0 0 0]
 [0 0 0 0]]
[[1 1 1 1]
 [1 1 1 1]
 [1 1 1 1]]
"""

二、从已有的数组创建数组

numpy.asarray

numpy.asarray 类似 numpy.array,但 numpy.asarray 参数只有三个,比 numpy.array 少两个。

numpy.asarray(a, dtype = None, order = None)
# a:任意形式的输入参数,可以是,列表, 列表的元组, 元组, 元组的元组, 元组的列表,多维数组
# dtype:数据类型,可选
# order:可选,有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。

numpy.frombuffer

  • numpy.frombuffer 用于实现动态数组。

  • numpy.frombuffer 接受 buffer 输入参数,以流的形式读入转化成 ndarray 对象。

numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0)
  • 代码示例

    import numpy as np
    s = b'Hello Word'
    a = np.frombuffer(s, dtype='S1')
    print(a)
    """
    [b'H' b'e' b'l' b'l' b'o' b' ' b'W' b'o' b'r' b'l' b'd']
    """
    

numpy.fromiter

numpy.fromiter 方法从可迭代对象中建立 ndarray 对象,返回一维数组。

numpy.fromiter(iterable, dtype, count=-1)
  • 代码示例

    import numpy as np
    
    a = np.fromiter(range(5), dtype=int)
    print(a)
    """
    [0 1 2 3 4]
    """
    

三、从数值范围创建数组

numpy.arange

numpy 包中的使用 arange 函数创建数值范围并返回 ndarray 对象,函数格式如下:

numpy.arange(start, stop, step, dtype)

参数解析

"""
# 根据 start 与 stop 指定的范围以及 step 设定的步长,生成一个 ndarray。
# 参数说明:
    start:起始值,默认为0
    stop:终止值(不包含)
    step:步长,默认为1
    dtype:返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型。
"""

代码示例

import numpy as np
x = np.arange(10,20,2)  
print (x)
""" 结果输出
[10  12  14  16  18]
"""

numpy.linspace

numpy.linspace 函数用于创建一个一维数组,数组是一个等差数列构成的,格式如下:

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

参数解析

"""
start:序列的起始值
stop:序列的终止值,如果endpoint为true,该值包含于数列中
num:生成的等步长的样本数量,默认为50
endpoint:该值为 true 时,数列中包含stop值,反之不包含,默认是True。
retstep:如果为 True 时,生成的数组中会显示间距,反之不显示。
dtype:ndarray 的数据类型
"""

代码示例

import numpy as np
a = np.linspace(10, 20,  5, endpoint =  False)  
print(a)
"""
[10. 12. 14. 16. 18.]
"""

numpy.logspace

numpy.logspace 函数用于创建一个于等比数列。格式如下:

np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)

base 参数意思是取对数的时候 log 的下标。

参数描述
start序列的起始值为:base ** start
stop序列的终止值为:base ** stop。如果endpointtrue,该值包含于数列中
num要生成的等步长的样本数量,默认为50
endpoint该值为 true 时,数列中中包含stop值,反之不包含,默认是True。
base对数 log 的底数。
dtypendarray 的数据类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卑微小钟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值