目录
1. np.array()
import numpy as np
## 下面两种结果相同
arr1 =np.array([1,2,3])
arr11 =np.array((1,2,3))
## 下面两种结果相同
arr2 =np.array([[1,2,3],[2,3,4]])
arr22 =np.array(((1,2,3),(2,3,4)))
#可通过reshape来改变形状
arr3 =np.array([[1,2,3],[2,3,4]]).reshape(3,2)
print(arr1)
print(arr11)
print(arr2)
print(arr22)
print(arr3)
[1 2 3]
[1 2 3]
[[1 2 3]
[2 3 4]]
[[1 2 3]
[2 3 4]]
[[1 2]
[3 2]
[3 4]]
2.np.arange()
import numpy as np
arr1 =np.arange(4)
arr2= np.arange(1,6,2)
arr3 =np.arange(12).reshape((3,4))
print(arr1)
print(arr2)
print(arr3)
[0 1 2 3]
[1 3 5]
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
3.ones/empty/zeros函数
ones/empty/zeros函数方法使用近似,下面以zeros函数为例
import numpy as np
arr1 = np.zeros(6,dtype=np.int32)
#以下两种方式结果相同
arr2 = np.zeros((2,3),dtype=np.int32)
arr3 = np.zeros(6,dtype=np.int32).reshape(2,3)
print(arr1)
print(arr2)
print(arr3)
4.np.random
np.random.rand():
其返回结果中的每一个元素是服从0~1均匀分布的随机样本值,前闭后开;
如果不指定,那么生成的是一个浮点型的数;如果指定一个数,那么生成的是一个numpy.ndarray类型的数组;如果指定两个数字,那么生成的是一个二维的numpy.ndarray类型的数组
np.random.random():
和上面np.random.rand函数几乎一模一样,唯一的区别是(2,3),以元组的形式;
np.random.randn()
返回的结果是服从均值为0,方差为1的标准正态分布,而不是局限在0-1之间,也可以为负值,基本同np.random.rand()
import numpy as np
arr1 = np.random.rand()
arr11 = np.random.random()
print(arr1)
print(arr11)
arr2 = np.random.rand(2)
arr22 = np.random.random(2)
print(arr2)
print(arr22)
arr3 = np.random.rand(2,3)
arr33 = np.random.random((2,3))
print(arr3)
print(arr33)
# 以下是np.random.randn函数
arr4=np.random.randn()
arr5 =np.random.randn(2)
arr6=np.random.randn(2,3)
print(arr4)
print(arr5)
print(arr6)
0.5736311616541673
0.04652982548354134
[0.655061 0.134019]
[0.13199651 0.33791001]
[[0.39933954 0.41683012 0.077079 ]
[0.74220456 0.26096057 0.788995 ]]
[[0.86544624 0.70291938 0.62671325]
[0.19132449 0.43554913 0.33147998]]
-2.014256955181612
[0.02856977 0.59193397]
[[ 0.9584476 0.45821351 1.24301107]
[ 0.13390901 -1.49664702 0.49785627]]
np.random.randint(low,high,size,dtype)
返回结果:返回值是一个大小为size的数组,如果指定了low和high这两个参数,那么生成的元素值的范围为[low,high),不包括high;
如果不指定high这个参数,则生成的元素值的范围为[0,low)。如果不指定size这个参数,那么生成的元素值的个数只有一个。
import numpy as np
# 指定一个参数low
mat = np.random.randint(low=2)
print(mat)
# 指定low和high,生成一个[low,high)的元素值
mat = np.random.randint(low=1, high=8)
print(mat)
# 指定size大小,生成一个三行三列的二维数组,元素个数为3x3=9个
mat1 = np.random.randint(low=2, high=10, size=(3, 3))
# 指定size大小,生成一个[2,10),元素个数为3个的数组
mat2 = np.random.randint(2, 10, 3)
print(mat1)
print(mat2)
mat = np.random.randint(low=2, high=10, size=(3, 3), dtype=np.uint8)
print(mat)
1
1
[[4 8 4]
[7 7 5]
[6 2 2]]
[3 8 2]
[[9 3 2]
[8 3 7]
[8 4 2]]
np.random.uniform(low,high,size)
uniform()可以生成服从指定范围内的均匀分布的元素。其返回值的元素类型为浮点型。需注意的是元素值的范围包含low,不包含high。
import numpy as np
# 指定一个参数low
mat = np.random.uniform()
print(mat)
# 指定low和high,生成一个[low,high)的元素值
mat = np.random.uniform(low=6, high=8)
print(mat)
# 指定size大小,生成一个两行三列的二维数组,元素个数为2x3=6个
mat = np.random.uniform(low=2, high=6, size=(2, 3))
print(mat)
0.19092554740670453
7.69760778806884
[[2.79287241 3.58444483 3.26800313]
[4.9747663 4.18105176 2.03037405]]
np.linspace
np.linspace 是NumPy库中用于创建等间隔的数值序列的函数。其语法如下:
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
参数含义如下:
start:序列的起始值。
stop:序列的结束值。
num:生成的样本数,默认为50。
endpoint:如果为True(默认值),则stop是最后一个样本。否则,不包括在内。如果endpoint为False,生成的样本数将为num。
retstep:如果为True,则返回(samples, step),其中step是样本之间的间距。
dtype:输出数组的数据类型。
示例:
import numpy as np
arr1 = np.linspace(1,10,5)
arr2 = np.linspace(1,10,6).reshape((2,3))
print(arr1)
print(arr2)
[ 1. 3.25 5.5 7.75 10. ]
[[ 1. 2.8 4.6]
[ 6.4 8.2 10. ]]
备注:如果想在特定范围内生成数据,可以采用np.random.randint或np.random.uniform方法