numpy array create: 学习numpy的创建数组是对这个python工具包学习必不可少的入门步骤,之前–a few years ago的文章(numpy 数组属性 区别于 python list 清仓大甩卖)中我们已经对numpy array的属性做了入门级的介绍,本篇我们又要对create numpy array做入门级的介绍了。
我们会用到的函数方法做入门级的介绍,同时会做一些基础级的注意事项说明。
1. 基础创建函数
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
名称 | 描述 |
---|
object | 数组或嵌套的数列 |
dtype | 数组元素的数据类型,可选 |
copy | 对象是否需要复制,可选 |
order | 创建数组的样式,C为行方向,F为列方向,A为任意方向(默认) |
subok | 默认返回一个与基类类型一致的数组 |
ndmin | 指定生成数组的最小维度 |
array 参数说明
# 1、基本创建方式
a = np.array([3, 4, 5])
print('a=', a)
# 2、显式指定纬度
b = np.array([3, 4, 5], ndmin=1)
print('b=', b)
c = np.array([3, 4, 5], ndmin=4)
print('c=', c)
# 3、隐式多维度
d = np.array([[3, 4, 5], [6, 7, 8]])
print('d=', d)
# 4、显式多维度
e = np.array([[3, 4, 5], [6, 7, 8]], ndmin=3)
print('e=', e)
a= [3 4 5]
b= [3 4 5]
# ndmin的显式指定,4个纬度至少有4层中括号
c= [[[[3 4 5]]]]
d= [[3 4 5]
[6 7 8]]
e= [[[3 4 5]
[6 7 8]]]
2.复制、迭代器、指定范围等方式
numpy.asarray(a, dtype = None, order = None)
参数 | 描述 |
---|
a | 任意形式的输入参数,可以是,列表, 列表的元组, 元组, 元组的元组, 元组的列表,多维数组 |
dtype | 数据类型,可选 |
order | 可选,有”C”和”F”两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。 |
asarray 参数说明
numpy.fromiter(iterable, dtype, count=-1)
参数 | 描述 |
---|
iterable | 可迭代对象 |
dtype | 返回数组的数据类型 |
count | 读取的数据数量,默认为-1,读取所有数据 |
fromiter 参数说明
numpy.arange(start, stop, step, dtype)
参数 | 描述 |
---|
start | 起始值,默认为0 |
stop | 终止值(不包含) |
step | 步长,默认为1 |
dtype | 返回ndarray 的数据类型,如果没有提供,则会使用输入数据的类型。 |
arange参数说明
# 5、通过复制已有数组来创建数组
f = np.asarray(e, dtype=float)
print('copy array = ', f)
# 6、通过传入一个迭代器创建数组
g = np.fromiter(iter(range(6)), dtype=float)
print('fromiter = ', g)
# 7、指定起始范围及步长的方式, 可正序可倒序
h = np.arange(2, 10, 1.5, dtype=float)
print('arange = ', h)
h = np.arange(20, 10, -1.5, dtype=float)
print('arange = ', h)
copy array = [[[3. 4. 5.]
[6. 7. 8.]]]
fromiter = [0. 1. 2. 3. 4. 5.]
arange = [2. 3.5 5. 6.5 8. 9.5]
arange = [20. 18.5 17. 15.5 14. 12.5 11. ]
3.一些特殊的数组
numpy.empty(shape, dtype = float, order = 'C')
参数 | 描述 |
---|
shape | 数组形状 |
dtype | 数据类型,可选 |
order | 有”C”和”F”两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。 |
empty参数说明
numpy.zeros(shape, dtype = float, order = 'C')
参数 | 描述 |
---|
shape | 数组形状 |
dtype | 数据类型,可选 |
order | ‘C’ 用于 C 的行数组,或者 ‘F’ 用于 FORTRAN 的列数组 |
zeros参数说明
numpy.ones(shape, dtype = None, order = 'C')
参数 | 描述 |
---|
shape | 数组形状 |
dtype | 数据类型,可选 |
order | ‘C’ 用于 C 的行数组,或者 ‘F’ 用于 FORTRAN 的列数组 |
ones 参数说明
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 的数据类型 |
linspace等差数列一维数组
np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)
参数 | 描述 |
---|
start | 序列的起始值为:base ** start |
stop | 序列的终止值为:base ** stop。如果endpoint 为true ,该值包含于数列中 |
num | 要生成的等步长的样本数量,默认为50 |
endpoint | 该值为 true 时,数列中中包含stop 值,反之不包含,默认是True。 |
base | 对数 log 的底数。 |
dtype | ndarray 的数据类型 |
logspace等比数列一维数组
# 8、指定形状创建数组
# 1.空数组
a = np.empty((3, 3), dtype=float)
print('empty=', a)
# 2.元素全是0的数组
b = np.zeros((3, 3), dtype=int)
print('zeros=', b)
# 3.元素全是1的数组
c = np.ones((2, 3), order='F')
print('ones=', c)
# 4.等差数列的一维数组
d = np.linspace(1, 15, 5, False)
print('不要尾值,等差 d= ', d)
d = np.linspace(1, 15, 5, True)
print('保留尾值,等差 d= ', d)
# 5.创建等比数列的一维数组
e = np.logspace(1, 2, 4, base=2.0)
print('e= ', e)
e = np.logspace(0, 2, 4)
print('e= ', e)
empty= [[0.00e+000 0.00e+000 0.00e+000]
[0.00e+000 0.00e+000 1.86e-321]
[0.00e+000 0.00e+000 0.00e+000]]
zeros= [[0 0 0]
[0 0 0]
[0 0 0]]
ones= [[1. 1. 1.]
[1. 1. 1.]]
不要尾值,等差 d= [ 1. 3.8 6.6 9.4 12.2]
保留尾值,等差 d= [ 1. 4.5 8. 11.5 15. ]
e= [2. 2.5198421 3.1748021 4. ]
e= [ 1. 4.64158883 21.5443469 100. ]