Python-numpy基础

  • numpy库的基本操作
import numpy as np
import math
#创建数组
a=np.arange(10)
print(a)
print(type(a))

#对数组里面的元素开平分
b=[3,4,9]
#定义结果列表
result=[]
#遍历列表
for i in b:
    print(math.sqrt(i))
    result.append(math.sqrt(i))
#输出结果列表
print(result)

#可以直接对numpy里面的元素开平方
print(np.sqrt(a))

  •  numpy利用array创建数组及参数设置
import numpy as np
import math
#使用array创建一维数组
a=np.array([1,2,3,4]) #一个方括号
print(a)
print(type(a))

#使用array创建二维数组
b=np.array([[1,2,3],[4,5,6],[7,8,9]]) #二个方括号
print(b)

#使用array创建三维数组
c=np.array([[[1,2,3],[4,5,6],[7,8,9]]]) #三个方括号
print(c)

#array函数中可以利用dtype设置数组的类型
d=np.array([3,4,5],dtype=float)
print(d)

#利用ndim设置矩阵的维数
e=np.array([3,4,5],dtype=float,ndmin=3)
print(e)

  •  arange创建数组
import numpy as np
import math
#使用range建数组range(start,end,step)[star,end)
a=list(range(1,10)) #步长为1
print(a)
b=list(range(10))#默认从0开始 步长为1
print(b)
c=list(range(1,10,3))
print(c)

#使用arange建数组
d=np.arange(1,11)
print(d)
e=np.arange(1,11,2,dtype=float)
print(e)

  •  np创建随机数组
import numpy as np
import math
#使用random创建一维随机数组 参数就是size
a=np.random.random(size=5)#产生0.0~1.0之间的数
print(a)
print(type(a))

#创建二维数组
b=np.random.random(size=(3,4))
print(b)

#三维
c=np.random.random(size=(2,3,4))
print(c)

#创建随机整数
def randomintTest():
    #生成0~5之间的一维整数
    d=np.random.randint(6,size=10)
    print(d)
    #生成5-10之间的二维随机整数
    e=np.random.randint(5,11,size=(4,3))
    print(e)
    # 生成5-10之间的三维随机整数
    f = np.random.randint(5, 11, size=(2,4, 3))
    print(f)
#调用
randomintTest()

  •  numpy生成符合正态分布的整数
import numpy as np
import math

#创建随机整数
def randnTest():
    #生成一维符合正态分布的整数
    a=np.random.randn(4)
    print(a)
    #生成二维符合正态分布的整数
    b=np.random.randn(2,3)
    print(b)
    #生成三维符合正态分布的整数
    c = np.random.randn(2,4, 3)
    print(c)
    #生成指定期望和方差的正态分布
    d=np.random.normal(size=5) #默认的期望loc=0.0 方差scale=1.0
    print(d)
    e = np.random.normal(loc=2,scale=3,size=(3,4))  # 默认的期望loc=2.0 方差scale=3.0
    print(e)
#调用
randnTest()
  • ndarray对象的属性
import numpy as np
import math

#一维数组
a=np.array([1,2,3,4])
#二维数组
b=np.random.randint(4,10,size=(2,3))
#三维数组
c=np.random.randn(2,3,4)
#ndim属性
print('ndim:',a.ndim,b.ndim,c.ndim)
#shape属性
print('shape:',a.shape,b.shape,c.shape)
#dtype属性
print('dtype:',a.dtype,b.dtype,c.dtype)
#size元素个数
print('size:',a.size,b.size,c.size)
#itemsize 每个元素所占的字节
print('itemsize',a.itemsize,b.itemsize,c.itemsize)

  •  用其他方式创建数组
import numpy as np
import math

#零数组
a=np.zeros(5,dtype=int)
print(a)
b=np.zeros((2,3),dtype=int)
print(b)
#一数组
c=np.ones((3,4),dtype=int)
print(c)
#empty数组
d=np.empty(5)
print(d)
#linspace创建等差数列
e=np.linspace(1,10,5,endpoint=False)#不包含10右界 输出起始为1 终止为9的5个等差数列
print(e)
#logspace创建等比数列
f=np.logspace(0,9,5,base=2)#0是开始 9是结束 5为数目 2是 2的0~9次方
print(f)

  •  numpy 一维数组的切片索引
import numpy as np
x=np.arange(10)
print(x)
#索引访问
print('索引5处的元素:',x[5])
print('索引-2处的元素:',x[-2])
#切片操作
print(x[3:])
y=x[2:7:2]
print(y)
#切片中的负索引
print(x[::-1]) #反向进行输出

  •  numpy 二维数组的切片索引
import numpy as np
x=np.arange(1,13)
x=x.reshape(4,3)
print(x)
#索引访问
print('获取第二行:',x[1])
print('获取第二行第三列:',x[1][2])
#切片操作
print('获取所有行所有列',x[:,:])
print('获取所有行第二列',x[:,1])
print('获取所有行第一、二列',x[:,0:2])
print('获取奇数行所有列',x[::2,:])
#坐标获取
print('获取第二行第三列',x[1][2])
print('获取第二行第三列',x[1,2])
print('获取第二行第三列、第三行第一列',x[1,2],x[2,0])
#返回数组
print('获取第二行第三列、第三行第一列',np.array([x[1,2],x[2,0]]))
#使用元组
print('获取第二行第三列、第三行第一列',x[(1,2),(2,0)])
#负索引的使用
print('行列倒序',x[::-1,::-1])

posted @ 2021-06-10 12:39  司砚章  阅读(108)  评论(0编辑  收藏  举报