通过numpy原生数组创建数组¶
使用arange方法创建等差数组¶
如果让大家创建一个等差列表,从1到100,一共100项,那一定非常方便,用range(1,101,1)
快速搞定。Numpy也提供了类似的方法arange()
,用法与range()
非常相似。
import numpy as np
# 指定 start、stop、以及step。arange和range一样,是左闭右开的区间。
arr_uniform0 = np.arange(1,10,1)
# 也可以只传入一个参数,这种情况下默认start=0,step=1
arr_uniform1 = np.arange(10)
arr_uniform0
Out:
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
arange()
和range()
到底有什么区别呢?答案是二者返回结果的类型不一样。一个是numpy.ndarray
,一个是range
。此外,arange()
能够接收浮点数,创建浮点数类型的数组,而range()
只能接收整数创建整形序列。可以说arange()
的应用范围更加广泛了。
arr_uniform2 = np.arange(1.2, 3.8, 0.3)
arr_uniform2
# Out:
# array([1.2, 1.5, 1.8, 2.1, 2.4, 2.7, 3. , 3.3, 3.6])
使用linspace方法创建等差数组¶
linspace()
方法稍微复杂一些,它的函数调用参数如下:
np.linspace(start, stop[, num=50[, endpoint=True[, retstep=False[, dtype=None]]]]])
# start、stop参数,和arange()中一致;
# num为待创建的数组中的元素的个数,默认为50
# endpoint=True,则为左闭右闭区间,默认为True;endpoint=False,则为左闭右开区间
# retstep用来控制返回值的形式。默认为False,返回数组;若为True,则返回由数组和步长组成的元祖
# 不设置endpoint,默认为Ture,结果为左闭右闭区间
arr_uniform3 = np.linspace(1,99, 11)
arr_uniform3
# Out:
# array([ 1. , 10.8, 20.6, 30.4, 40.2, 50. , 59.8, 69.6, 79.4, 89.2, 99. ])
# retstep设置为True,分别返回数组和步长
arr_uniform4 = np.linspace(1,99, 11, retstep=True)
arr_uniform4
# Out:
(array([ 1. , 10.8, 20.6, 30.4, 40.2, 50. , 59.8, 69.6, 79.4, 89.2, 99. ]), 9.8)
# 设置endpoint为False,结果为左闭右开区间
arr_uniform5 = np.linspace(1,99, 11, endpoint=False)
arr_uniform5
# Out: array([ 1. , 9.90909091, 18.81818182, 27.72727273, 36.63636364, 45.54545455, 54.45454545, 63.36363636, 72.27272727, 81.18181818, 90.09090909])
linspace()
方法最大的特点是可以直接定义数组的长度,这为我们调整数组的大小提供了方便。这里给大家介绍reshape()
方法:
arr_uniform6 = np.linspace(1,100, 20)
# 这里定义了一个长度为20的等差数组,然后通过reshape方法,调整数组的大小为5×4
arr_uniform6.reshape(5,4)
#输出结果为
Out:
array([[ 1. , 6.21052632, 11.42105263, 16.63157895],
[ 21.84210526, 27.05263158, 32.26315789, 37.47368421],
[ 42.68421053, 47.89473684, 53.10526316, 58.31578947],
[ 63.52631579, 68.73684211, 73.94736842, 79.15789474],
[ 84.36842105, 89.57894737, 94.78947368, 100. ]])
reshape
方法非常灵活地应用于调整数组的大小,但是不改变数组的长度。即长度100的数组,你可以非常方便地调整为1×100或者是4×25或者是5×20。这点在将横向量调整为列向量的时候非常有用。
创建等比数组¶
等比数列在计算中也有着广泛的应用,比如说计算利率的时候。这里我们介绍两种方法创建等比数据。
geomspace()
方法,创建指数等比数列¶
比如说我想创建从2到16的等比数列,我不知道具体的公比,但是我希望我的数列长度是4个。那我可以这样:
# 起始项为2,结束项为16,数列的长度为4。这里要注意,默认是左闭右闭的数组
arr_geo0 = np.geomspace(2,16,4)
arr_geo0
# Out: array([ 2., 4., 8., 16.])
geomspace()
方法非常简单,它的参数说明如下,以后用到,朋友们可以根据实际情况,自定义输入参数:
geomspace(start, stop, num=50, endpoint=True, dtype=None)
# start和stop,分别为区间的起始和终止值,为强制参数;
# num 为待生成等比数列的长度,指定后,程序会自动计算取等比数列的公比;
# endpoint默认为True,结果为左闭右必区间。否则为False,左闭右开区间;
logspace()
方法,创建对数等比数列¶
logspace()方法和geomspace()类似,唯一不同的是,在定义区间的起始值和终止值的时候,是以指数的形式定义的,logspace()用法如下:
logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)
# start:区间起始值为base的start次方
# stop:区间终止值为base的stop次方(是否取得到,需要设定参数endpoint)
# num:为待生成等比数列的长度。按照对数,即start和stop值进行等分。默认值为50
# endpoint:若为True(默认),则可以取到区间终止值,即左闭右闭区间,规则同上
最后更新:
2022年10月15日 01:02:48
创建日期: 2022年7月27日 11:10:25
创建日期: 2022年7月27日 11:10:25
Contributers: