原文连接:http://cs231n.github.io/python-numpy-tutorial/

Python

  • 基本数据类型
    integer,floats(与其他语言用法一致)
    没有++和–操作
    booleans: 用英文来表示按位与或非
    Strings: 字符串可用单引号或者双引号,可直接用+连接两个字符串

  • Containers
    Lists:相当于数组,但长度可变,且可包含不同类型的元素。可对列表切片:编号从0开始,[a:b]取出从a到b-1的元素,负数表示倒数,可用for循环遍历所有元素,并用enumerate(listname)来为取出的元素编号。列表的定义可用表达式和条件语句。
    Dictionaries:(key,value)对,通过key可以轻松遍历字典元素,利用items()方法可以同时得到key与value,字典的定义中也可包含表达式和条件语句。
    Sets:不同元素的无序组合,遍历方法与列表相同,但注意其是无序的,定义中也可包含表达式和条件语句。
    Tuples:元素不可变,元组和列表相似,但元组可以作为字典中的键值和集合中的元素,但列表不可以。

    Functions
    用def关键字

    Classes
    构造函数:init(self,name):

Numpy
多维数组对象
Arrays
所有元素都是相同的类型,由非负整数元组索引,数组的维度数是数组的秩,数组的形状是一个整数元组,给出了每个维度的数组大小。可以从嵌套的Python列表初始化numpy数组,并使用方括号访问元素。元素可修改。
切片方式与列表相似,数组的切片是多维的,必须指明每个维数的切片。改变切片后的数组元素的值,原数组的元素值也会改变。
整数数组索引允许使用另一个数组中的数据构造任意数组
import numpy as np
a = np.array([[1,2],[3,4],[5,6]])
print(a[[0,1,2],[0,1,0]])
结果[1,4,5]

Datatypes
在使用numpy创建数组是会自动识别数据类型,也可通过参数指定数据类型

Array math
*是元素乘法,而不是矩阵乘法。 我们使用点函数来计算向量的内积,将向量乘以矩阵,并乘以矩阵。 dot既可以作为numpy模块中的函数使用,也可以作为数组对象的实例方法

Broadcasting
广播是一种强大的机制,允许numpy在执行算术运算时使用不同形状的数组。 我们经常有一个较小的数组和一个较大的数组,我们希望多次使用较小的数组来对较大的数组执行某些操作。
将两个数组一起广播遵循以下规则:
如果数组不具有相同的等级,则将较低等级数组的形状添加为1,直到两个形状具有相同的长度。
如果两个数组在维度中具有相同的大小,或者如果其中一个数组在该维度中具有大小1,则称这两个数组在维度上是兼容的。
如果阵列在所有维度上兼容,则可以一起广播。
在广播之后,每个阵列的行为就好像它的形状等于两个输入数组的形状的元素最大值。
在一个数组的大小为1且另一个数组的大小大于1的任何维度中,第一个数组的行为就像沿着该维度复制一样。

10-03 16:59