用简易代码快速学习Python(九)

本学习系列介绍:

本学习系列主要针对对编程略有了解有其他语言基础并要进一步学习Python的同学,通过简易的代码快速入门掌握Python语言。

系列总目录:
用简易代码快速学习Python(一)
用简易代码快速学习Python(二)
用简易代码快速学习Python(三)
用简易代码快速学习Python(四)
用简易代码快速学习Python(五)
用简易代码快速学习Python(六)
用简易代码快速学习Python(七)
用简易代码快速学习Python(八)
用简易代码快速学习Python(九)
用简易代码快速学习Python(十)

Day09:

numpy和pandas概述:

numpy和pandas都是应用于数据分析的模块,TensorFlow、机器学习、神经网络都会常用到,它们是由C语言所编写的Python模块,运算时会比Python自带的列表、字典等计算速度更快。

pandas是基于numpy的而写的,是numpy的升级版。

numpy和pandas主要处理多维数组的运算。

numpy的一些基本操作:

import numpy as np
array = np.array([[1,2,3],[4,5,6]], dtype=np.int)
print(array)
#输出:
#[[1 2 3]
# [4 5 6]]
print('number of dim:', array.ndim) #输出维度:number of dim: 2
print('shape:', array.shape) #输出行列数:shape: (2, 3)
print('size:', array.size) #输出元素个数:size: 6
array = np.zeros((2,3))
print(array) #生成2行3列全为0的数组。
array = np.ones((2,3))
print(array) #生成2行3列全为1的数组。
array = np.empty((2,3))
print(array) #生成2行3列随机值数组,实际上是基于存储地址当前存储的数据。
array.fill(3)
print(array) #给数组填充成全是3的数组。
array = np.arange(10, 20, 2)
print(array) #生成从10到19,步长为2的一维数组。
print(type(array)) #输出:<class 'numpy.ndarray'>
array = np.arange(12).reshape((3,4))
print(array)
#输出:
#[[ 0  1  2  3]
# [ 4  5  6  7]
# [ 8  9 10 11]]
array = np.linspace(1,10,5)
print(array) #对区间1~10进行线性分割,使用5个分割点,输出:[ 1.    3.25  5.5   7.75 10.  ]

numpy的运算:

import numpy as np
array1 = np.array([4,5,6,7,8])
array2 = np.array([2,3,4,5,6])
print(array1 * array2) #不遵循矩阵乘法法则,只遵循同一位置相运算,输出:[ 8 15 24 35 48]
print(10 * array1) #输出:[40 50 60 70 80]
print(np.sin(array1)) #输出:[-0.7568025  -0.95892427 -0.2794155   0.6569866   0.98935825]
print(array1 > 6) #输出:[False False False  True  True]
array1 = np.array([[1,1],
                   [0,1]])
array2 = np.arange(4).reshape((2,2))
print(array1 * array2)
#输出:
#[[0 1]
# [0 3]]
print(np.dot(array1, array2)) #矩阵乘法,也可以写成array1.dot(array2)或array1 @ array2
#输出:
#[[2 4]
# [2 3]]

array = np.random.random((2,4)) #生成大小为2行4列的随机数组,值为0~1的小数。
print(array)
#输出:
#[[0.54159389 0.18146058 0.33453121 0.71989838]
# [0.59951622 0.03991031 0.45530535 0.5487577 ]]
print(np.sum(array)) #输出:3.420973641550918
print(np.sum(array, axis=0)) #输出:[1.14111011 0.22137089 0.78983656 1.26865608]
print(np.min(array)) #输出:0.039910308405153194
print(np.min(array, axis=1)) #输出:[0.18146058 0.03991031]
print(np.max(array)) #输出:0.719898383570208
print(np.max(array, axis=0)) #输出:[0.59951622 0.18146058 0.45530535 0.71989838]
#axis=0代表每列为一组,axis=1代表每行为一组,不写axis指全体值。
array = np.array([[5,6,7],[3,2,1],[4,5,6]])
print(np.argmax(array)) #输出最大值的下标,输出:2
print(np.argmin(array)) #输出最小值的下标,输出5
print(np.mean(array)) #输出平均值,也可以写成array.mean()或np.average(array)。
print(np.median(array)) #输出中位数。
print(np.cumsum(array)) #输出逐次加和的值:[ 5 11 18 21 23 24 28 33 39]
print(np.diff(array))
#输出后一项减前一项的差值:
#[[ 1  1]
# [-1 -1]
# [ 1  1]]
print(np.nonzero(array)) #输出数组中不为零的值的下标,返回一个元素为数组的元组。
#输出:
#(array([0, 0, 0, 1, 1, 1, 2, 2, 2], dtype=int64), array([0, 1, 2, 0, 1, 2, 0, 1, 2], dtype=int64))
print(np.sort(array)) #对每一行进行排序。
#输出:
#[[5 6 7]
# [1 2 3]
# [4 5 6]]
print(np.transpose(array)) #输出矩阵的转置,也可以写成array.T。
print(np.clip(array, 3, 5)) #让数组中小于3的都变为3,大于5的都变为5。

numpy的一些常用操作:

import numpy as np
array = np.arange(3,15).reshape((3,4))
print(array.flatten()) #把array所有元素变成一行,相当于np.reshape(array,12)。
for item in array.flat:
    print(item) #输出array中每个元素。
A = np.array([1,1,1])
B = np.array([2,2,2])

C = np.vstack((A,B)) #vertical stack 竖直合并数组。
#另一种高级写法:C = np.concatenate((A,B), axis=0),代表在0维度上合并数组。
D = np.hstack((A,B)) #horizontal stack 水平合并数组。
#另一种高级写法:D = np.concatenate((A,B), axis=1),代表在1维度上合并数组。

print(C)
#输出:
#[[1 1 1]
# [2 2 2]]
print(D) #输出:[1 1 1 2 2 2]
A = np.array([1,1,1])
print(A.shape) #输出:(3,)
print(A.T) #当数组为一维时,会转置失败,因为转置不会增加数组维度,输出:[1 1 1]
print(A.T.shape) #输出:(3,)
print(A[np.newaxis,:]) #代表在行上增加维度,输出:[[1 1 1]]
print(A[np.newaxis,:].shape) #输出:(1, 3)
print(A[:,np.newaxis])
#代表在列上增加维度,输出:
#[[1]
# [1]
# [1]]
print(A[:,np.newaxis].shape) #输出:(3, 1)
A = np.arange(12).reshape((3,4))
print(np.split(A, 3, axis=0)) #对A数组进行在0维度上的分割,分成均等的3份,返回一个元素为数组的列表。
#还可以写成np.vsplit(A, 3)。
#输出:[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
print(np.split(A, 2, axis=1)) #对A数组进行在1维度上的分割,分成均等的2份,返回一个元素为数组的列表。
#还可以写成np.hsplit(A, 2)。
#输出:
#[array([[0, 1],
#       [4, 5],
#       [8, 9]]), array([[ 2,  3],
#       [ 6,  7],
#       [10, 11]])]
print(np.array_split(A, 3, axis=1)) #不均等分割。
#输出:
#[array([[0, 1],
#       [4, 5],
#       [8, 9]]), array([[ 2],
#       [ 6],
#       [10]]), array([[ 3],
#       [ 7],
#       [11]])]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 如果你想快速学习Python,以下是一些建议: 1. 首先,了解Python的基本语法和概念。你可以通过阅读一些基础教程或视频来学习这些内容。 2. 安装并配置好Python开发环境,并且熟悉常用的开发工具,如PyCharm。 3. 练习代码。你可以通过完成一些练习题来练习自己的代码技能,并且不断加深对Python语言的理解。 4. 阅读一些高质量的代码。这可以帮助你了解Python的最佳实践和代码风格。 5. 尝试完成一个完整的项目。通过完成一个实际项目,你可以将所学到的知识应用到实际场景中,并且更好地了解Python的实际应用。 6. 加入一个社区,与其他Python开发者交流。你可以在线上或线下的技术社区中寻找志同道合的开发者,并且不断学习和交流。 ### 回答2: 要快速学习Python,有几个关键的步骤可以帮助你: 1. 建立学习计划:制定一个详细的学习计划,包括每天或每周学习的时间和目标。这将有助于你更有条理地学习Python,并保证你的学习进程不会中断。 2. 学习Python的基础知识:先学习Python的基础语法和概念,例如变量、数据类型、条件语句、循环和函数等。可以通过阅读相关书籍、在线教程或参加培训课程来学习。 3. 实践编写代码:通过实践编写代码来巩固所学知识。可以选择编写简单的程序,例如计算器或猜数字游戏等,以锻炼自己的编程能力。同时,也可以参与一些开源项目或参与编程挑战,以提高自己的编码技巧。 4. 与他人交流和分享:加入Python学习社区或论坛,与其他Python爱好者交流和分享经验。这将帮助你学习到更多实用的技巧和技术,并且可以从其他人的反馈中快速改进自己的代码。 5. 持续学习和探索:Python是一门庞大而灵活的语言,持续学习和探索将使你能够更好地理解和利用Python的功能。可以关注最新的Python技术和趋势,并不断更新自己的知识。 总之,要快速学习Python,合理规划时间、掌握基础知识、加强实践、与他人交流以及持续学习和探索是至关重要的。坚持不懈地学习和实践,相信你会很快掌握Python的编程技巧。 ### 回答3: 要快速学习Python,可以采取以下几个方法: 首先,明确学习目标和学习计划。要学习Python,需要明确学习的内容和学习的时间安排。可以选择一本适合初学者的Python教材或参考网上的教程,制定一个详细的学习计划,包括每天学习的时间和任务。这样可以帮助提高学习效率。 其次,进行实践练习。Python是一门编程语言,通过实际操作可以更好地理解和掌握知识。可以找一些编程练习题目或者小项目,通过编写代码来巩固所学的知识。还可以参加一些开源项目或者编程竞赛,与他人合作解决实际问题,提高自己的编程能力。 另外,参加社区和论坛活动。Python拥有庞大的社区和活跃的讨论论坛,可以通过加入相应的社区或论坛,与其他Python爱好者交流和分享经验。在社区中可以了解到最新的Python发展动态和资源,也可以得到其他人的建议和指导,加快学习进度。 此外,还可以关注优秀的Python教育资源。网络上有许多优秀的Python教育资源,可以通过观看相关的教学视频、阅读相关的书籍或参加在线课程来学习。这些教育资源通常由经验丰富的专业人士提供,可以提供系统、高效的学习方法。 最后,保持学习的热情和持之以恒。学习任何一门技术都需要付出时间和努力,快速学习Python也不例外。保持学习的热情和持之以恒,坚持每天学习一点,相信自己的能力,相信通过努力一定能够掌握Python这门强大的编程语言。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘学长丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值