2.0 Variables and Basic Data Structures变量和基本数据结构
2.1 变量和赋值
List所有变量in this notebook
%whos
Clear变量x from the workspace
%del x
Remove所有变量in the notebook
%reset
在Python程序中可随时修改变量的值,只记录变量的最新值。
2.2 Data Structure - Strings字符串
Strings are surrounded by either single or double quotation marks. 在Python中,用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号。
"This is a string."
'This is also a string.'
可以用print() 函数输出strings到screen.
print("I love Python!")
w = "Hello World"
type(w)
str
Hello World中间的空格也是字符串
TRY IT! Create an empty string. Verify that the empty string is a str.
s = " "
type(s)
str
内置函数len()可以给出the size of the string
也可以通过索引来访问。w = "Hello World",w[6]就是'W',因为索引是从0开始的。
w[6:11]是'World'。The syntax for slicing in Python is [start:end:step], the 3rd one - step is optional.
w[6:]会取到末尾。w[:5]从头取。w[6:-2]取到倒数第二个。
Retrieve every other character in the variable w
w[::2]是'HloWrd'
反斜杠字符(\)用于转义具有特殊含义的字符,例如换行符、反斜杠本身或引号字符。
'don\'t'的结果是"don't"
一个字符串可以连接到另一个字符串。例如:
str_a = "I love Python! "
str_b = "You too!"
print(str_a + str_b)
I love Python! You too!
内置函数 str() 将其他数据类型转换为字符串
x = 1
print("x = " + x) #是错的
#改成:
print("x = " + str(x))
#x的类型不再是数字,而是string
type(str(x))
str
Python里面的字符串是对象object,因此有各种各样的方法来进行操作。
w.upper() 变成大写:'HELLO WORLD'。
w.count("l") 计算字母“l”的出现次数
w.replace("World", "Berkeley") 将变量 w 中的“World”替换为“Berkeley”
.title()将每个单词的首字母都改为大写。
.upper()所有字母大写
.lower()所有字母小写
打印格式化的字符串
name = "UC Berkeley"
country = 'USA'
print("%s is a great school in %s!"%(name, country))
双引号中的%s告诉Python想在此位置插入一些字符串(在本例中 s 代表字符串)。%(name, country) 是我们要插入的两个字符串的位置。
Python 3.6及更高版本引入了f-String:
print(f"{name} is a great school in {country}.")
直接打印3*4的值
print(f"{3*4}")
2.3 Data Structure - Lists
list列表是一种数据类型,一种有序的集合,可以随时添加和删除其中的元素。使用一对括号 [ ],元素用逗号分隔。可以包含任何类型的数据:数字、字符串或其他类型的数据。
list是内置数据类型,列表中元素的数据类型不必相同的。实际上,列表(list)中保存的是数据存放地址,简单的说就是指针,并非数据,这样保存一个list就太麻烦了,例如list1=[1,2,3,'a']需要4个指针和四个数据,增加了存储开销和降低了访问效率。但是可以动态插入、增加项。
list_1 = [1, 2, 3]
list_2 = ['Hello', 'World']
list_3 = [1, 2, 3, 'Apple', 'orange']
list_4 = [list_1, list_2]
可以用 + 号来连接两个列表。
append方法将新项添加到现有列表、
insert 和 remove 方法在列表的任何位置中插入或删除元素
函数 del使用索引删除任意位置处的列表元素,条件是知道其索引。
可以使用运算符 in 快速检查某个元素是否在列表中
使用列表函数list()可以将其他序列项转换为列表。
list('Hello World')
['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
2.4 Data Structure - Tuples
Tuples元组看起来很像列表,但使用圆括号()而非中括号[]来标识。如果定义只包含一个元素的元组,必须在这个元素后面加上逗号:my_t = (3,)。但是创建只包含一个元素的元组通常没有意义。
和列表list类似,但是元组中的元素,一旦定义,就无法更改。但是给tuples元组变量重新赋值是合法的。要换整个换,内部元素不能换。
tuple_1 = (1, 2, 3, 2)
len(tuple_1) #获取tuple_1的长度。
tuple_1.count(2) #计算 tuple_1 中数字 2 的出现次数。
元组和列表有着完全不同的存储方式。因为不用考虑更新问题,元组的速度性能要远优于列表。优先使用元组,应该成为Python程序员遵循的一条基本原则。用了十几年才想明白:Python的精髓居然是方括号、花括号和圆括号! - 知乎
2.5 Data Structure - Sets
2.6 Data Structure - Dictionaries
2.7 Introducing Numpy Arrays
Numpy(Numerical Python)是一个开源的Python数据科学计算库,可能是 Python 中最基本的数值计算模块。
使用 Numpy模块需要先导入它。导入的常规方法是使用“np”作为缩写名称。也可以用别的名称,但是“np”是目前约定俗成的,别改了。
import numpy as np
Numpy定义了一种object,称为ndarray来处理N维数组。numpy中的大部分属性和方法都是为ndarray服务的。所以,掌握了ndarray的用法,基本就掌握了numpy的用法。定义数组array,用np.array把列表list转换成一个数组
x = np.array([1, 4, 3])
y = np.array([[1, 4, 3], [9, 2, 7]])
type(x)
numpy.ndarray
import numpy as np
ar=np.array([[1,2,3,4,5,6],[2,3,4,5,6,7],[3,3,4,5,6,7]])
#ar的类型,维度,shape,个数,数据类型,字节大小
print(type(ar),ar.ndim,ar.shape,ar.size,ar.dtype,ar.itemsize)
shape 属性, size 属性,ndim属性,dtype属性,itemsize属性
.Numpy 中的 arange 函数。 linspace(a,b,n),np.zeros、np.ones 和 np.empty