Python学习笔记(一)

一、Python基础

1.简述

Python是一门高级语言、解释型语言,交互式语言、面向对象的语言

2.类型和表达式部分

你好,世界

print "你好,世界“

乘方

print 2**10

变量

var = 1
print var

var  = "段光伟"
print var

获取用户输入

 x=input("x:")
x:4
y=input("y:")
y:4
print x*y
16

函数定义

def say_b():
    print "b"

强类型(不允许不安全的类型转换)

print 1+int("1")

print str(1)+"1"

字符串

#字符串
print ''''段 光伟'''
print r'C:log.txt'
print 'C:\log.txt'

序列seq

seq = "0123456789"
print seq[0] #从0开始编码。
print seq[-1] #支持倒着数数,-1代表倒数第一。
print seq[1:5] #支持分片操作,seq[start:end],start会包含在结果中,end不会包含在结果中。
print seq[7:] #seq[start:end]中的end可以省略。
print seq[-3:] #分片也支持负数。
print seq[:3] #seq[start:end]中的start也可以省略。
print seq[:] #全部省略会复制整个序列。
print seq[::2] #支持步长。
print seq[::-2] #支持负步长。
print seq[9:1:-1] #支持负步长。
print [1, 2, 3] + [4, 5, 6] # 序列支持相加,这解释了为啥字符串可以相加。
print [1, 2, 3] * 3 #序列支持相乘,这解释了为啥字符串可以相称。
print [None] * 10 #生成一个空序列。
print 1 in [1, 2, 3] #成员判断。

可变的列表

data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

data[0] = "a" #修改元素。
print data
data[0] = 0

del data[10] #删除元素。
print data

del data[8:] #分片删除。
print data

data[8:] = [8, 9, 10] #分片赋值
print data

学习资源参考:

https://www.cnblogs.com/happyframework/p/3255962.html

 二、常用模块

1.numpy

用于处理数组的模块,同时也是其他数据处理分析的模块

  • 数组的创建
  • 数组的属性和函数
  • 数组元素的获取——普通索引、切片、布尔索引、花式索引
  • 统计函数与线性代数运算
  • 随机数的生成

(1)导入numpy库

import numpy as np

(2)list 与array的区别

list数组中保存的数据类型不必相同,可以是字符串、整形数据等,存储时存放1个指针和1个数据;

array的存储空间则小,只存放数值;

(3)创建数组

使用array()函数创建数组

np.array([1,2,3]) # 创建一维数组
np.asarray([1,2,3])
np.array([1,2,3], [4,5,6]) # 创建多维数组

np.zeros((3, 2)) # 3行2列 全0矩阵
np.ones((3, 2)) #全1矩阵
np.full((3, 2), 5) # 3行2列全部填充5

np.array 和np.asarray的区别

array会复制出一个新的对象,占用一份新的内存空间,而asarray不会执行这一操作。array类似深拷贝,asarray类似浅拷贝。

(4)基础计算

arr1 = np.array([[1,2,3], [4,5,6]])
arr2 = np.array([[6,5], [4,3], [2,1]])

# 查看arr维度
print(arr1.shape) # (2, 3)

#切片 
np.array([1,2,3,4,5,6])[:3]  #array([1,2,3])
arr1[0:2,0:2] # 二维切片

#乘法
np.array([1,2,3]) * np.array([2,3,4]) # 对应元素相乘 array([2,6,  12])
arr1.dot(b) # 矩阵乘法

#矩阵求和
np.sum(arr1)  # 所有元素之和 21
np.sum(arr1, axis=0) #列求和 array([5, 7, 9])
np.sum(arr1, axis=1) # 行求和 array([ 6, 15])

# 最大最小
np.max(arr1, axis=0/1)
np.min(arr1, axis=0/1)

(5)进阶计算

arr = np.array([[1,2], [3,4], [5,6]])

#布尔型数组访问方式
print((arr>2))
    """
    [[False False]
     [ True  True]
     [ True  True]]
    """
print(arr[arr>2]) # [3 4 5 6]

#修改形状
arr.reshape(2,3)
    """    
    array([[1, 2, 3],
       [4, 5, 6]])
    """
arr.flatten() # 摊平 array([1, 2, 3, 4, 5, 6])
arr.T # 转置
原文地址:https://www.cnblogs.com/Sonny-xby/p/9964239.html