1. numpy Ndarry和创建数组的方式
NumPy数组(ndarray)是NumPy库的核心数据结构,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。
ndarray本质上是一个存放同类型元素的多维数组,其中的每个元素在内存中都有相同存储大小的区域。
创建numpy数组最常见的方法就是将一个列表使用np.array()函数转成ndarray。
import numpy as np
array1 = np.array([1,2,3,4,5])
#np.array函数全部的参数有
#np.array(object, dtype=None, *, copy=True, order='K', subok=False, ndmin=0,like=None)
#具体可以尝试上面提到的查看函数提示的方法或者去看numpy的文档
#dtype参数表示array中元素的类型,这个参数在numpy中很常见。
print('array1: \n',array1)
array2 = np.array([[1,2],[3,4]])
print('array2: \n ',array2)
array1:
[1 2 3 4 5]
array2:
[[1 2]
[3 4]
#array常用属性
#查看array数据类型
print("array1.dtype : ",array1.dtype)
#查看数组的维度
print("array1.ndim : ",array1.ndim)
print("array2.ndim : ",array2.ndim)
#查看array的形状
print("array1.shape : ",array1.shape)
print("array2.shape : ",array2.shape)
#查看array中的元素总个数
print("array2.size : ",array2.size)
array1.dtype : int32
array1.ndim : 1
array2.ndim : 2
array1.shape : (5,)
array2.shape : (2, 2)
array2.size : 4
Numpy还有其他很方便的创建元素值相同的数组的函数:
- np.empty(shape,dtype)创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组
- np.zeros(shape,dtype)创建指定形状(shape),数组元素以 0 来填充
- np.ones(shape,dtype)创建指定形状(shape),数组元素以 1 来填充
- np.zeros_like(array,dtype)创建一个与给定数组具有相同形状的数组,数组元素以 0 来填充
- np.ones_like(array,dtype)创建一个与给定数组具有相同形状的数组,数组元素以 1 来填充
1.1 从数值范围创建数组
在python for循环中的range(start,stop,step)函数,他能生成一个迭代器。Numpy也有类似的函数,能够直接生成一个数组。
np.arange(start, stop, step, dtype),他的使用方法与range()一模一样。
print("np.arange(20)\n",np.arange(20))
print("np.arange(1,20,2)\n",np.arange(1,20,2))
np.arange(20)
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]
np.arange(1,20,2)
[ 1 3 5 7 9 11 13 15 17 19]
此外,numpy还提供一个构建等差数列的函数,只需要设定start和stop,以及要生成的等步长样本数量Num。
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
- start 序列的起始值
- stop 序列的终止值,如果endpoint为true,该值包含于数列中
- num 要生成的等步长的样本数量,默认为50
- endpoint 该值为 true 时,数列中包含stop值,反之不包含,默认是True。
- retstep 如果为 True 时,生成的数组中会显示间距,反之不显示。
- dtype ndarray 的数据类型
print("np.linspace(1,100,50)\n",np.linspace(0,100,30))
np.linspace(1,100,50)
[ 0. 3.44827586 6.89655172 10.34482759 13.79310345
17.24137931 20.68965517 24.13793103 27.5862069 31.03448276
34.48275862 37.93103448 41.37931034 44.82758621 48.27586207
51.72413793 55.17241379 58.62068966 62.06896552 65.51724138
68.96551724 72.4137931 75.86206897 79.31034483 82.75862069
86.20689655 89.65517241 93.10344828 96.55172414 100. ]
这里说明一下&#x