本文主要是介绍python中Numpy库学习,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
"""
2021/7/8
Numpy学习
"""
import numpy as np
"""
#随机生成数组并进行计算
import numpy as np
data = np.random.randn(2,3)
print(data)
print(data * 10)
print(data + data)
print(data.shape)#表示维度
print(data.dtype)#表示数据类型
"""
"""
#创建数组
data1 = [6,7.5,8,0,1]
arr1 = np.array(data1)
print(arr1)
data2 = [[1,2,3,4],[5,6,7,8]]#由一组等长列表组成的列表
arr2 = np.array(data2)
print(arr2)
print(arr2.ndim)
print(arr2.shape)
print(arr2.dtype)
print(np.zeros(10))#生成全0数组
print(np.zeros((2,3)))
print(np.ones(2))#生成全1数组
print(np.ones((2,3,2)))#注意是两个括号,否则报错
print(np.empty((2,3,2)))#创建数组,只分配内存空间但不填充任何值
print(np.arange(12))#生成12个数字组成数组
print(np.eye(3))#创建一个n维单位矩阵(对角线为1,其余皆为0
"""
"""
#ndarray的数据类型及类型转换
arr3 = np.array([1,2,3],dtype = np.float64)#在生成数组时指定数组类型
arr4 = np.array([1,2,3],dtype = np.int32)
print(arr3.dtype)
print(arr4.dtype)
float_arr4 = arr4.astype(np.float64)#用astype函数强制转换数组的数据类型
print(float_arr4.dtype)
arr5 = np.array([1.4,2.1,3.7],dtype = np.float64)
int_arr5 = arr5.astype(np.int32)#浮点数被强制转换成32位整数
print(int_arr5)#小数部分被截取删除
arr6 = np.array(['1.25','-9.6','0.32'])#数据类型输入为字符串型
float_arr6 = arr6.astype(np.float64)#把元组数据类型中的字符型转换成浮点型
print(arr6)
print(float_arr6)
"""
"""
#Numpy数组运算
arr = np.array([[1,2,3],[4,5,6]])
print(arr)
print(arr * arr)
print(arr - arr)
print(1 / arr)
print(arr ** 0.5)
print(arr > arr ** 0.5)#大小相同的数组之间的比较会生成布尔值数组返回结果
"""
"""
基本的索引和引片
#数组索引及修改
arr = np.arange(10)#生成0-9的一维数组
print(arr)
print(arr[5])#输出数组中第五个位置的元素
print(arr[5:8])#输出数组中第6-8个位置的元素
arr[5:8] = 12#把对应位置的元素值修改为同一值
print(arr)
#数组的切片
arr_slice = arr[5:8]
print(arr_slice)
arr_slice[1] = 12345#修改切片中第2个位置
print(arr)
arr_slice[:] = 64#把切片中指定位置的所有元素修改为同一值
print(arr)
arr2d = np.array([[1,2,3],[4,5,6],[7,8,9]])#生成2*3维数组
print(arr2d[2])#返回第3行的元素组
print(arr2d[0][2])
print(arr2d[0,2])#返回结果与商行代码一致
data = np.random.randn(7,4)
print(data)
data[data < 0] = 0#把数组中小于0的元素修改为0
print(data)
"""
"""
#数组转置和轴对称
arr0 = np.arange(15).reshape((3,5))#生成3*5的数组
print(arr0)
arr0_t = arr0.T#矩阵转置
print(arr0_t)
print(np.dot(arr0,arr0_t))#计算矩阵的内积
#print(arr0 *arr0_t)报错,计算内积只能采用np.dot(a,a.T)函数得到结果
"""
"""
通用函数:快速的元素及数组函数
arr = np.arange(10)#生成一元数组
s = np.sqrt(arr)#求数组的根号
e = np.exp(arr)#求指数值
print(s)
print(e)
x = np.random.randn(8)
y = np.random.randn(8)
m = np.maximum(x,y)#求两数组中的最大值
a = np.add(x,y)#两矩阵对应元素相加
print(m)
print(a)
"""
"""
#利用数组进行数据处理
points = np.arange(-5,5,0.01)#从-5到5以步长0.01生成一维数组
xs,ys = np.meshgrid(points,points)#用np.meshgrid()函数组合两个一维数组为二维矩阵
#print(ys)
z = np.sqrt(xs ** 2 + ys ** 2)#对矩阵进行运算
#print(z)
"""
"""
#数学和统计方法
arr = np.random.randn(5,4)
print(arr)
x1 = arr.mean()
x2 = np.mean(arr)#两种方法均能求矩阵的均值
x11 = arr.mean(1)#求矩阵行的平均值
x12 = arr.mean(2)#求矩阵列的平均值
print(x1)
print(x2)
x3 = arr.sum()
x4 = np.sum(arr)#两种方法均能求矩阵和
x31 = arr.sum(1)#计算每行的和
print(x3)
print(x4)
arr1 = np.array([[0,1,2],[3,4,5],[6,7,8]])
print(arr1)
a1s = arr1.cumsum(axis = 0)#按列聚合求和
a1p = arr1.cumprod(axis = 1)#按列聚合求积
print(a1s)
print(a1p)
"""
"""
#用于布尔型数组的方法
arr = np.random.randn(100)
print(arr)
arrs = (arr >0).sum()#求矩阵中所有大于0的元素之和
print(arrs)
bools = np.array([False,False,True,False])
print(bools.any())#any表示只有一个为True则为真
print(bools.all())#all表示所有元素为真才为真
#非0即为1
"""
""""
#排序
arr = np.random.randn(6)
print(arr)
#arr1 = arr.sort()报错
#arr2 = arr.sort(1)#多维矩阵中可按行排列
arr2 = np.sort(arr)
#print(arr1)
print(arr2)
"""
"""
线性代数及随机数函数见参考教材
"""
这篇关于python中Numpy库学习的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!