创建Numpy数组的 “7种” 方法,最全,必看,速看!
1. 本文介绍
Ⅰ 创建数组的7种方法; Ⅱ ndarray数组,常用属性介绍;

2. 创建数组的8种方法
① 利用array()函数创建数组
array1 = [1,2,3]
m = np.array(array1)
print(m)
array2 = [[1,2,3],[4,5,6]]
n = np.array(array2)
print(n)

② 利用arange()和linspace()函数创建 “等差数列” 数组
np.arange(start,end,step):start和end表示起始位置,step表示步长,用于创建表示等差数列的一维数组,注意得到的结果数组不包含终值; np.linspace(start,end,num):start和end表示起始位置,num表示个数,用于创建表示等差数列的一维数组,可以通过endpoint参数指定是否包含终值,默认值为True,即包含终值;
array1 = np.arange(1,10)
print(array1)
array2 = np.arange(1,10,2)
print(array2)

endpoint=True表示是包含终止值(默认),endpoint=False表示不包含终止值; dtype=np.float64指定创建的数组的数据类型默认是float64,你也可以设置为dtype=np.np.int32;
array3 = np.linspace(1,20,num=5,endpoint=False,dtype=np.float64)
print(array3)
array4 = np.linspace(1,20,num=5,endpoint=False,dtype=np.int32)
print(array4)
array5 = np.linspace(1,20,num=5,endpoint=True,dtype=np.float64)
print(array5)
array6 = np.linspace(1,20,num=5,endpoint=True,dtype=np.int32)
print(array6)

③ 创建 “指定数值填充” 的数组
np.zeros((x,y)):生成一个x行y列的,元素都是0的二维数组; np.ones((x,y)):生成一个x行y列的,元素都是1的二维数组; np.full((x,y),value):生成一个x行y列的,元素都是value的二维数组,其中这个value值可以是整数(正整数,0,负整数)或者小数;
array1 = np.zeros((3,4))
print(array1)
array2 = np.ones((3,4))
print(array2)
array3 = np.full((3,4),1.2)
print(array3)


④ 复制已有数组,创建指定数值的数组
np.zeros_like():复制已有数组形状,创建一个全0数组; np.ones_like():复制已有数组形状,创建一个全1数组; np.full_like():复制已有数组形状,创建一个指定数值的数组;
n1 = np.array([1,2,3]);
n2 = np.array([[1,2,3],[4,5,6]])
print(n1)
print(n2)

np.zeros_like(n1)
np.ones_like(n2)
np.full_like(n1,8)

⑤ 创建 “单位矩阵” 和 “对角矩阵”
array1 = np.eye(3)
print(array1)
array2 = np.identity(4)
print(array2)

array3 = np.diag([10,20,30])
print(array3)

⑥ 利用logspace()函数创建 “等比数列” 数组
np.logspace(start, stop, num=50, endpoint=True, base=, dtype=None) start和stop表示指数次幂,base表示底数,也就是公比; endpoint=True表示是包含终止值(默认),endpoint=False表示不包含终止值;
array1 = np.logspace(1, 7, num=4, endpoint=True, base=2)
print(array1)

⑦ 通过 “自定义函数” 创建数组
# 定义一个函数
def f(x, y):
return x * 2 + 1 + y
# 从一个函数生成一个二维数组;
b = np.fromfunction(f, (3,3), dtype=np.int32)
print(b)

3. 常用属性介绍
x = np.array([[1,2,3],[4,5,6]])
print(x)
x.shape # 数组形状
x.size # 数组中元素个数
x.dtype # 数组中元素数据类型
x.ndim # 数组的维度

评论