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。如果endpoint 为true ,该值包含于数列中 |
num | 要生成的等步长的样本数量,默认为50 |
endpoint | 该值为 true 时,数列中中包含stop 值,反之不包含,默认是True。 |
base | 对数 log 的底数。 |
dtype | ndarray 的数据类型 |