pip install numpy
pip list
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
import numpy as np
#使用array创建一维数组
list01 = [1,2,3,4]
np01 = np.array(list01)
print(np01)
print(type(np01))
#使用array创建二维数组
list02 = [[1,2,3,4],[5,6,7,8]]
np02 = np.array(list02)
print(np02)
print(type(np02))
#使用array创建三维数组
list03 = [[[1,2,3,4],[5,6,7,8],[9,10,11,12]]]
np03 = np.array(list03)
print(np03)
print(type(np03))
array参数的使用
参数 | 参数及描述 |
---|---|
Object | 任何序列类型 |
dtype | 数组的所需数据类型,可选。 |
copy | 可选,默认为true,对象是否被复制。 |
order | C(按行)、F(按列)或A(任意,默认)。 |
subok | 默认情况下,返回的数组被强制为基类数组。如果为true,则返回子类。 |
ndimin | 指定返回数组的最小维数。 |
# Object 任何序列类型
tuple01 = (1,2,3)
list01= [1,2,3]
set01 = {5,6,7}
dict01 ={"张三":10,"李四":20}
np01= np.array(dict01)
print(np01)
#dtype 数组的所需数据类型,可选。
list01 = [1,2,3]
np01= np.array(list01,dtype=float)
print(np01)
""" 说明 np02 是 np01 的副本,两个是不同的对象 所以np02 和 np01 的数据不同 """
list01 = [1,2,3]
np01= np.array(list01)
np02=np.array(np01,copy=True)
np02[0]=10
print(np01)
print(np02)
""" 可以看到数据是一样的,说明np02和np01是同一个对象 """
list01 = [1,2,3]
np01= np.array(list01)
np02=np.array(np01,copy=False)
np02[0]=10
print(np01)
print(np02)
#由于order效果不明显,也不常用,在这里作为了解 #subok 默认情况下,返回的数组被强制为基类数组。如果为true,则返回子类。 #matrix 是矩阵 之后会给大家详细讲解先回用
np01 = np.matrix('1 2 7; 3 4 8; 5 6 9')
print(type(np01))
print(np01)
np02 = np.array(np01, subok=True)
np03 = np.array(np01, subok=False)
print(type(np02)) # 如果是true返回矩阵
print(type(np03)) #如果是False,强制改为了数组
#ndimin 指定返回数组的最小维数。
list01 = [1,2,3]
np01= np.array(list01,dtype=float,ndmin=3)
print(np01)
先来复习以下range函数 """ range(start,stop,step) 函数可创建一个整数列表 1.不写start,默认从0开始 2.左开右闭 3.step步长,不写默认是1 """
for i in range(10):
print(i)
""" arange(start,stop,step,dtype) 1.不写start,默认从0开始 2.左开右闭 3.step步长,不写默认是1 """ #一维数组
a = np.arange(10) #[0 1 2 3 4 5 6 7 8 9]
a = np.arange(2,10) #[2 3 4 5 6 7 8 9]
a = np.arange(1,10,2) #[1 3 5 7 9]
a = np.arange(1,10,2,dtype=float)
print(a)
#二维数组 #切记前面的12,必须满足3*4
np01 = np.arange(12).reshape(3, 4)
print(np01)
常用的random函数
函数 | 描述 |
---|---|
np.random.random(size) | 生成0到1之间的随机数 |
np.random.randint(low,high=None,size=None,dtype="1") | 生成随机的整数 |
np.random.randn(d0,d1,d2,d3.........) | 生成标准正态的随机数(期望为0,方差为1) |
np.random.normal(loc,scale,size) | 生成正态分布(指定期望和方差) |
np.random.uniform(low,high,size) | 生成均勻分布的随机数 |
np.random.shuffle() | 随机打乱顺序 |
np.random.seed() | 设置随机数种子 |
np.random.sample(size) | 生成随机的浮点数 |
# np.random.random() 生成0到1之间的随机数 #创建一维数组 size生成几个数据,可直接写4
np01= np.random.random(size=4) #[0.13475357 0.8088961 0.52055803 0.49706622]
#创建二维数组 size=(3,4) 3行4列 可用()和[] ,效果一样
np01= np.random.random((3,4))
#创建三维数组 两个三行四列
np01= np.random.random((2,3,4))
print(np01)
""" np.random.randint(low,high=None,size=None,dtype="1") 生成随机的整数 low:开始 high=None :结束 size:长度 dtype数据类型,默认是int32 no01.dtype属性 1.左开右闭 2.不写low默认是0 """ #创建一维数组
np01= np.random.randint(1,11,10)#1-10
#创建二维数组
np01= np.random.randint(1,11,(3,4))#1-10
#创建三维数组
np01= np.random.randint(1,11,(2,3,4))#1-10
print(np01)
#创建标准的正态分布 #一维数组
np01=np.random.randn(4)
#二维数组
np01=np.random.randn(2,4)
#三维数组
np01=np.random.randn(3,2,4)
print(np01)
""" np.random.normal(loc,scale,size)生成正态分布(指定期望和方差) loc: 期望,默认0 scale: 方差,默认1.0 size: 长度 """
np01= np.random.normal(size=5)
np01= np.random.normal(loc= 2,scale=3,size=5)
np01= np.random.normal(size=(2,3,5))
print(np01)
""" np.random.uniform(low,high,size) 生成均勻分布的随机数 low: 不写默认是0, high: 结尾, : 长度 1.左开右闭 """
np01= np.random.uniform(size= 4)#四个数据几乎不会相差太多,比较均匀
np01= np.random.uniform(size= (2,4))
np01= np.random.uniform(high=3)
print(np01)
""" np.random.shuffle(ArrayLike)随机打乱顺序 """
np01 = np.array([2,5,6,7,3])
print(np01)
np.random.shuffle(np01)
print(np01)
""" np.random.seed()设置随机数种子 从每堆种子里选出来的数都是不会变的,从不同的堆里选随机种子每次都不一样,若想每次都能得到相同的随机数,每次产生随机数之前,都需要调用一次seed() """
np.random.seed(1)
np01= np.random.randint(1,10,size= 5)
np.random.seed(1)
np02= np.random.randint(1,10,size = 5)
print(np01)
print(np02)
""" np.random.sample(size) 生成随机的浮点数 """
np01= np.random.sample(size=2)
print(np01)
np02= np.random.sample(size=(2,3))
print(np02)
numpy.zeros(shaps,dtype=float,order="C") #创建指定大小的数组,数组以0填充
""" numpy.zeros(shaps,dtype=float,order="C") #创建指定大小的数组,数组以0填充 shaps:维度 dtype:数据类型 order:按行按列 """
np01= np.zeros(5) #[0. 0. 0. 0. 0.]
np01= np.zeros(5,dtype="int32") #[0 0 0 0 0]
np01= np.zeros((2,5),dtype="int32")
""" [[0 0 0 0 0] [0 0 0 0 0]] """ print(np01)
函数 | 描述 |
---|---|
np.zeros((3, 4)) | 创建3×4的元素全为0的数组 |
np.ones((3, 4)) | 创建3×4的元素全为1的数组 |
np.empty((2, 3)) | 创建2×3的空数组,空数据中的值并不为0,而是未初始化的垃圾值 |
np.zeros_like(ndarr) | 以ndarr相同维度创建元素全为0数组 |
np.ones_like(ndarr) | 以ndarr相同维度创建元素全为1数组 |
np.empty_like(ndarr) | 以ndarr相同维度创建空数组 |
np.eye(5) | 该函数用于创建一个5×5的矩阵,对角线为1,其余为0 |
np.full((3,5), 10) | 创建3×5的元素全为10的数组,10为指定值 |
np01= np.ones((2,5),dtype="int32")
np01= np.empty((2,5),dtype="int32")
print(np01)
list01= [
[1,2,3],
[4,5,6]
]
np01= np.array(list01)
print(np01.shape)
np02= np.zeros_like(np01,dtype=float)
print(np02)
print(np02.shape)
# np.eye(5) 该函数用于创建一个5×5的矩阵,对角线为1,其余为0
np01= np.eye(5)
print(np01)
# np.full((3,5), 10) 创建3×5的元素全为10的数组,10为指定值 #10是指定的,你可以指定任意值 np01= np.full((3,5),5) print(np01)
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
参数 | 描述 |
---|---|
start | 序列的起始值 |
stop | 序列的终止值 ,如果endpoint=True,则证明数组包含于数列 |
num | 生成样本数量,默认是50 |
endpoint | 如果为ture则包含stop,否则不包含 |
retstep | 如果retstep=Ture,生成的数组会显示间距,否则不显示 |
dtype | 数据类型 |
""" np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None) """
np01= np.linspace(1,10,5)#从1-10,生成5个数据
np01= np.linspace(1,10,5,endpoint=True)#把10包含进去
np01= np.linspace(1,10,5,endpoint=False)#把10不包含进去
np01= np.linspace(1,10,5,retstep=True)#显示间距
np01= np.linspace(1,10,5,dtype="int32")
print(np01)
np.logspace(start,stop,num=50,endpoint=Ture,base=10.0,dtype=None)
参数 | 描述 |
---|---|
start | 序列的起始值 |
stop | 序列的终止值 ,如果endpoint=True,则证明数组包含于数列 |
num | 生成样本数量,默认是50 |
endpoint | 如果为ture则包含stop,否则不包含 |
base | 对数log的底数,默认10.0 |
dtype | 数据类型 |
创建一个长度为10的一维全为0的ndarry对象,然后让第五个元素等于 创建一个元素为从10到49的narray对象。 创建一个4*4的二维数组,并输出数组元素类型。 创建一个数组,该数组可以完全将坐标位置为(0,1,3)到(3,0,1)的转置。 将4题中的数据类型转换为float64。
目录
安装
1.以管理员的形式打开cmd
2.输入命令安装numpy插件
3.安装成功后,输入pip list 命令查看是否安装成功
创建
使用array创建
array语法
维数的理解
使用arange创建
使用 random 创建数组
使用zeros创建数组
创建特定形状的多维数组
使用linspace创建数组
使用logspace创建数组
练习