python reshape函数_Python学习

目录:

  • python 介绍
  • 制表符
  • 面向对象
  • ✍️规范
  • 模块
  1. pass
  2. re模块中match和search的区别
  3. type/dir/help
  4. 异常处理
  5. range
  • 矩阵
  • 数据结构
  1. dict,{ }
  2. list,[ ]
  • jupyter
  • 函数式编程
  1. λ 表达式
  • 函数理解,def()
  1. 可选参数
  2. 变量作用域
  • 字符串操作

format { }

分割 split()

join 添加新字符

..


Python介绍

Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言

6655e5f3b837d18aff0b55e262389e1f.png

设计者开发时的总的指导思想是:对于一个特定的问题,只要有一种最好的方法来解决就该好了

Python 的设计哲学是优雅、明确、简单

Python 的执行:

63eb095ae1e553da900e92e1f573ab2d.png

制表符[1]

2ec96f8f89c462eeeba65d3b29b79811.png

以乘法口诀为例:

for i in range(1,10):
    for j in range(1,i+1):
        print('{1}*{0}={2}'.format(i,j,i*j),end='t')
    print()

075c043a46f5a5cbb7bd2c75d86d8d12.png
for i in range(1,10):
    for k in range(1,i):
        print('.',end = 't')
    for j in range(i,10):
        print('{}*{}={}'.format(i,j,i*j),end = 't')
    print()

8f74c4b807c851ae09095032f6114d28.png

参考:Python ——遍历列表(打印九九乘法表)

%:余数

// :得到商

5b2081a2835d39a8b704d90a044b0984.png

面向对象

简单的说,类是对象的蓝图和模板,而对象是类的实例。这个解释虽然有点像用概念在解释概念,但是从这句话我们至少可以看出,类是抽象的概念,而对象是具体的东西。在面向对象编程的世界中,一切皆为对象,对象都有属性和行为,每个对象都是独一无二的,而且对象一定属于某个类(型)。

当我们把一大堆拥有共同特征的对象的静态特征(属性)和动态特征(行为)都抽取出来后,就可以定义出一个叫做“类”的东西。

静态特征 + 动态特征 = 类

39c032b221b5bcb9cd9b50f769a283ef.png

创建类和对象:

class Student(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age
        
    def study(self, course_name):
        print('{}正在学习{}....'.format(self.name, course_name))
        
    def watch_movie(self):
        if self.age < 18:
            print('{}正在看《熊出没》'.format(self.name))
        else:
            print('{}正在看《泰坦尼克号》'.format(self.name))
  

def main():
    stu1 = Student('小明', 23)
    stu1.study('python课程')
    stu1.watch_movie()
    
    
if __name__ == '__main__':
    main()

小明正在学习python课程....
小明正在看《泰坦尼克号》

关于私有化参见:

咪咪怪:python小课堂21 - 面向对象(三)​zhuanlan.zhihu.com
ecd541cfeb0c9b809ccafcf8e68b27ca.png

python 里面的单下划线与双下划线的区别(私有和保护)https://blog.csdn.net/liangpz521/article/details/8089723

面向对象的三大支柱:封装、继承和多态

关于封装:

我自己对封装的理解是“隐藏一切可以隐藏的实现细节,只向外界暴露(提供)简单的编程接口”。我们在类中定义的方法其实就是把数据和对数据的操作封装起来了,在我们创建了对象之后,只需要给对象发送一个消息(调用方法)就可以执行方法中的代码,也就是说我们只需要知道方法的名字和传入的参数(方法的外部视图),而不需要知道方法内部的实现细节(方法的内部视图)。

书写规范

文档字符串

为了阅读方便,方便函数调用者使用。

文档字符串用于解释函数的功能,记录所需的参数类型。

05532085d6b0f44074430d123fa6fa23.png

模块[2]

  • pass的作用

Python pass是空语句,是为了保持程序结构的完整性。

pass 不做任何事情,一般用做占位语句。

  • re模块中match和search的区别

match() 函数只在字符串的开始位置尝试匹配正则表达式,也就是只报告从位置 0 开始的匹配情况,而 search() 函数是扫描整个字符串来查找匹配。

如果想要搜索整个字符串来寻找匹配,应当用 search()。

  • type得到调用对象的类型

dir 得到对象的所有属性和方法

help()则查看具体的方法说明,q键退出

e7a5ce1c0b084ae640d9476e884f6de2.png

help (np.BUFSIZE):

7ee5b69521d3afd6cd633ad8daba132a.png
  • 异常处理(exception handling)

使用 try...except...

1b5ef0db2f5521a8ef084761e0d931d9.png

如果你认为代码可能会报 告异常,可使用关键字 try 和 except 来捕获。

  • range
  1. range(101)可以产生一个0到100的整数序列。
  2. range(1, 100)可以产生一个1到99的整数序列。
  3. range(1, 100, 2)可以产生一个1到99的奇数序列,其中的2是步长,即数值序列的增量。

Python矩阵表示

  • 一种是matrix类
  • 二维array

主要区别在于默认乘法的不同,array是对应相乘,matrix则与矩阵乘法相同

在实际中,大多数情况下,使用array方法

-------------

sum(),axis解读

axis=1时,阵列内部相加

8fa229439b573bbe94827ac53ac639e6.png

-------------

np reshape()解读:

在对数据集进行操作时,经常可看到np.array([....]).reshape(),什么意思呢?

看 :

6137868c8f1b763b97a058a5d8fb44b8.png

可以看出,reshape(3,2)表示将数据改写为3行2列形式;reshape(-1,1)则表示改写为1列,-1可以不用管


python 基本数据结构(容器):

dict,{ }

1f4b7bc56dfddc606cbc9cb7973573e2.png
list,列表,[ ],可以将任何元素放在list里

2af0828798dfdcb036681883b354197a.png

** pop 方法移除列表中的最后一个元素

** filter(function, iterable)

参数
function -- 判断函数。
iterable -- 可迭代对象。
def is_odd(n):
    return n % 2 == 1
 
tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
newlist = list(tmplist)
print(newlist)
============================
[1, 3, 5, 7, 9]

**列表删除指定元素

a = [1, 2, 0, 3, 4, 0, 5, 0, 6]
for b in a:
    if b == 0:
        a.remove(b)
print(a)
[1, 2, 3, 4, 5, 6]

** append()添加元素:

array = [1,6,8,9]
array.append(4)   #尾部插入
print(array)

# # 中间插入
# array.insert(2,0)
# print(array)

for i in range(3):
    array.insert(2,0)
print(array)
ar = [2,400,'qew']
ar+array+ar
============================
[1, 6, 8, 9, 4]
[1, 6, 0, 0, 0, 8, 9, 4]
[2, 400, 'qew', 1, 6, 0, 0, 0, 8, 9, 4, 2, 400, 'qew']

d82d4614f57a0d53e337dcc5e4719a36.png

tuple与list类似,( ),只是不能被修改

** enumerate() 函数,可以同时获取索引:

821ac8d1a53bf0cc2e93b292e9de2c89.png

** 三种方法实现列表中元素大写

在方法1中,由于要遍历列表元素,同时要增大遍历的序号,故额外增加了i=0这一项

9e1841a3d26a44ec2e1613100aaddd8b.png

jupyter:

+ 回车:添加新行

d943589d029b64d877dc571774d038eb.png

函数式编程:

  • λ 表达式

9cb8e9eb05eb88e42b381c06b0bf0ec6.png

函数理解

  • 可选参数:

函数定义里面,必选参数必须位于可选参 数之前。

9daa4c1e0a763211add83a62ec53fe34.png
  • 变量作用域

变量有一个很重要的属性,作用域(scope)。定义变量时,其作用域指的是哪部分 程序可以对其进行读写。读取一个变量意味着获取它的值,写变量意味着修改它的值。 变量的作用域由其定义在程序中所处的位置决定。

可以在程序的任何地方对全局变量进行写操作,但是在局部作用域中需稍加注意: 必须明确使用 global 关键字,并在其后写上希望修改的变量。Python 要求这样做,是 为了确保在函数内部定义变量 x 时,不会意外变更之前在函数外部定义的变量的值。在函数内部对全局变量进行写操作的示例如下:

4fa943c9955a81d57cff99061899c73f.png

字符串操作

9852a8b96ab094758cf6c3a2e572b3b7.png
  • format

39b5856d69ce92ee525a14d5795930cf.png

如果字符串跨越一行以上,可以使用三引号。如上

x = float(input('x = '))
if x>1:
    y =3*x-5
elif x >= -1:
    y = x+2
else:
    y=5

print( 'f({:.3f}) = {:.0f} '.format(x, y))  #推荐这种
print('f(%.2f) = %.2f' % (x, y))
  • 字符串分割:split()

输入‘http://www.baidu.com’,输出:'com.baidu.www'

address = 'www.baidu.com'  # >>'com.baidu.www'
add_new = address.split('.')
add_new[-1]+'.'+add_new[1]+'.'+add_new[0]

2228df56ad44b61a75a284478431d50a.png
  • join()方法添加新字符

2224d944fcb20c0785eb0bde2c8d983f.png

可使用 strip 方法去除字符串开头和末尾的空白字符:(注意,strip方法并不能修改原先的变量内容)

3e862737b7b4e1be5be096bdc2ce17fd.png

替换

aec57a5e8b0cb08c375ac792ecfc0999.png

参考

  1. ^Python转义字符 https://www.runoob.com/python/python-strings.html
  2. ^python模块详解 https://zhuanlan.zhihu.com/p/33913131
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值