numpy生成数组的五种方式

np.arange()函数

np.arange()函数类似于range,通过指定开始值,终值和步长来创建表示等差数列的一维数组,注意该函数和range一样,不包含终值。

a=np.arange(10)
print(a)
# 显示结果为:[0 1 2 3 4 5 6 7 8 9]

b=np.arange(0,1,0.1)
print(b)
# 显示结果为:[0.  0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]

np.linspace()函数

np.linspace()函数,与上面np.arange()不同的是,该函数第三个参数指定的是元素个数,它表示给定起始值和终点值以及元素个数,生成一个一维的等差数列。

含有参数endpoint布尔值,默认为True表示包含终值,设定为False表示不包含终值。

c=np.linspace(0,1,10)
print(c)
# 输出结果为:[0.         0.11111111 0.22222222 0.33333333 0.44444444 0.55555556 0.66666667 0.77777778 0.88888889 1.        ]

d= np.linspace(0,1,10,endpoint = False)
print(d)
# 输出结果为:[0.  0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]

np.logspace()函数

np.logspace,该函数与np.linspace类似,不过它生成的数组是等比数列,基数默认为10。

loga= np.logspace(0,4,5)
print(loga)
#输出结果为:[1.e+00 1.e+01 1.e+02 1.e+03 1.e+04]

logb=np.logspace(0, 3, 5, base=2)
print(logb)
#输出结果为:[1.         1.68179283 2.82842712 4.75682846 8.        ]

np.zeros(),np.ones(),np.empty()函数

np.zeros(),np.ones(),np.empty()函数可以创建指定的形状和类型数组。

其中np.enpty()只分配数组所使用的内存,不对数据初始化起作用。

print(np.empty((2,3),np.int32))
# 结果为:
[[0 0 0]
 [0 0 0]]

print( np.ones(4))
# 结果为:[1. 1. 1. 1.]

print(np.ones((2,3)))
#结果为:
[[1. 1. 1.]
 [1. 1. 1.]]

print(np.ones(4,dtype = np.bool))
# 结果为:[ True,  True,  True,  True]

 print(np.zeros(4,dtype = np.bool))
# 结果为:[False False False False]

print(np.zeros(4))
# 结果为:[0. 0. 0. 0.]

np.ones(4,dtype = np.bool)
array([ True, True, True, True], dtype=bool)
np.zeros(4,dtype = np.bool)
array([False, False, False, False], dtype=bool)
np.zeros(4)
array([ 0., 0., 0., 0.])
np.full()函数可以生成初始化为指定值的数组

np.full(4,np.pi)
array([ 3.14159265, 3.14159265, 3.14159265, 3.14159265])
np.full((2,3),np.pi)
array([[ 3.14159265, 3.14159265, 3.14159265],
[ 3.14159265, 3.14159265, 3.14159265]])
此外np.zeros_like(),np.ones_like()等函数创建于参数形状相同的数组即np.zeros_like(a)与np.zeros(a.shape,dtype = a.type)相同
a = np.arange(10).reshape(2,5)
np.zeros_like(a)
array([[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]])

np.fromfunction()

np.fromfunction()函数可以从指定的函数中生成数组,第一个参数是函数名称,第二个参数是数组形状。

bb=np.fromfunction(lambda a,b:a == b,(3,3))
print(bb)
# 结果显示为:
[[ True False False]
 [False  True False]
 [False False  True]]

vv=np.fromfunction(lambda i:i%7 +1,(10,))
print(vv)
# 结果显示为:[1. 2. 3. 4. 5. 6. 7. 1. 2. 3.]

参考

https://blog.csdn.net/weixin_30405507/article/details/112840737
https://blog.csdn.net/kirsten111111/article/details/121042064
https://www.cnblogs.com/td15980891505/p/6082858.html

猜你喜欢

转载自blog.csdn.net/ximu__l/article/details/131008993
今日推荐