说到python的数据分析第三方扩展库,就不得不提到numpy和pandas。今天我们一起来学习numpy中怎么创建数组。
numpy创建数组
1. 现有的数据填充
- array(object[, dtype, copy, order, subok, ndmin])
使用array创建数据,传入一维的数据就得到一维数组,传入二维就得到二维数组。
2. 指定数值填充
-
ones(shape[, dtype, order])
指定数组的形状,里面的数值都用1填充。
-
zeros(shape[, dtype, order])
指定数组的形状,里面的数值都用0填充。
-
full(shape, fill_value[, dtype, order])
指定数组的形状,里面的数值都用fill_value填充
-
empty(shape[, dtype, order])
根据指定的形状返回一个数组,但是并不初始化(我理解的是如果你指定的形状前面已经有相同形状相同数据类型的数组,则生成一个相同的array,下面第一个array6。如果指定的形状前面没有创建过,则返回都是填充0的数组,下面第二个array6)。
-
单位矩阵:方法一:eye(N[, M, k, dtype, order])
返回一个对角线是1,其余都是0的矩阵
-
单位矩阵:方法二:identity(n[, dtype])
返回一个对角线是1,其余都是0的矩阵。
identity只能返回n*n矩阵。
其余还可用填充方式创建数组的还有: -
empty_like(prototype[, dtype, order, subok, …])
传入一个数组,将会得到一个与这个数组形状及数值类型一样的新数组。举两个例子。
其余的方式你们可以自己去尝试一下哦。
3. 利用数值范围创建数组
-
arange([start,] stop[, step,][, dtype])
返回给定区间内的均匀间隔的值。
arange得到的数值范围是左闭右开的一个范围,若是只给定一个最大值,默认取值范围是从0到最大值之间取值。
若是想得到一组负数的数组,只给一个stop值无法得到。
-
linspace(start, stop[, num, endpoint, …])
返回一个指定间隔内的等差数组。
得到的数组是给定数值范围(左闭右闭)内,按照你需要的个数,自动帮你分成一个等差的数组。
-
logspace(start, stop[, num, endpoint, base, …])
默认返回的是一个以10为底数的等比数列。数组根据你给定需要的num值来确定等比的比值。
4. 创建对角矩阵
- diag(v[, k])
传入对角线数组,根据传入的对角线数组的元素个数n,对应创建n*n的数组,除了对角线其余用0填充。若是传入的都是1,则相当于单位矩阵。
其余创建numpy数组的方法,可以参考官方文档(https://www.numpy.org.cn/reference/routines/array-creation.html)。
常用属性介绍
array1 = np.array([[1,2],[3,4],[5,6]])
array1.shape #数组的维度
array1.size # 数组中的元素个数
array1.dtype # 数组中元素的数据类型
array1.ndim # 数组维数
array1.itemsize # 一个数组元素的长度,以字节为单位
array1.nbytes # 数组元素消耗的总字节数
array1.T # 数组转置
好了,今天的文章到这里就结束了,相信你已经掌握了这四类创建数组的方法。
感谢您的阅读~