本文使根据CS231n的讲义整理而成(http://cs231n.github.io/python-numpy-tutorial/),以下内容基于Python3。

1. 基本数据类型:可以用 print(type(x)) 查看类型

  1)整数、浮点数:

    幂:x**y等价于pow(x, y);

    不支持 x++、x--,支持 x+=1;

    /是浮点除法,//是整除,3//2 = 1;

    %取余;

  2)布尔:

    与(and,&)、或(or,|)、非(not),不要使用&&、||之类的。

  3)字符串:

    单引号 'abc' ,双引号 "abc",都可以;

    字符串长度 len(a);

    可以用 + 把多个字符串串联起来;

    可以格式化的赋值,例如 a = '%s %s %d' % (x, y, 3);

    字符串有很多内置的小函数可以调用,例如 s.capitalize(),s.upper(),s.replace('a', 'A') 等等。

2. 容器

  1)列表 List:

    赋值:x = [1, 2, ‘a’],跟一维数组很像,都是用方括号,但大小可以扩展,而且元素可以是任意类型。

    取出元素 x[0] = 1,x[-1] = 'a',序号也是用方括号,从0开始,-1是倒数第一个。

    末尾添加:x.append('b'),这时候x = [1, 2, 'a', 'b'];

    取末尾值:y = x.pop(),这时候y = ‘b’, x = [1, 2, ‘a’];

    可以像matlab一样取子集,y = x[1:2],这时候y = [2, 'a'];

    可以用for循环遍历,enumerate可以取出元素的序列:

animals = ['cat', 'dog', 'monkey']
for animal in animals:
print(animal)
# Prints "cat", "dog", "monkey", each on its own line. animals = ['cat', 'dog', 'monkey']
for idx, animal in enumerate(animals):
print('#%d: %s' % (idx + 1, animal))
# Prints "#1: cat", "#2: dog", "#3: monkey", each on its own line

    list comprehension的用法:

nums = [0, 1, 2, 3, 4]
squares = [x ** 2 for x in nums]
print(squares) # Prints [0, 1, 4, 9, 16] nums = [0, 1, 2, 3, 4]
even_squares = [x ** 2 for x in nums if x % 2 == 0]
print(even_squares) # Prints "[0, 4, 16]"

  2)字典,Dictionary:

    赋值用大括号,一个key冒号一个value,d = {'cat': 'cute', 'dog': 'furry'};

    直接赋值就能增加元素,d['fish'] = 'wet',这时候 d = {'cat': 'cute', 'dog': 'furry', 'fish': 'wet'};

    取值 a = d['fish'],这时候a = 'wet';

    取值的时候可以设定默认值,d.get('monkey', 'N/A'),如果没有'moneky'词条就会输出'N/A'

    可以for循环遍历, item()可以把key和value都取出来:

d = {'person': 2, 'cat': 4, 'spider': 8}
for animal in d:
legs = d[animal]
print('A %s has %d legs' % (animal, legs))
# Prints "A person has 2 legs", "A cat has 4 legs", "A spider has 8 legs" d = {'person': 2, 'cat': 4, 'spider': 8}
for animal, legs in d.items():
print('A %s has %d legs' % (animal, legs))
# Prints "A person has 2 legs", "A cat has 4 legs", "A spider has 8 legs"

    Dictionary comprehensions的用法:

nums = [0, 1, 2, 3, 4]
even_num_to_square = {x: x ** 2 for x in nums if x % 2 == 0}
print(even_num_to_square) # Prints "{0: 0, 2: 4, 4: 16}"

  3)集合,Set:

    赋值用大括号,animals = {'cat', 'dog'},也可以不同类型的元素 x = {'a', 3, 'b', 3.52};

    增加元素用add,删除元素用remove,animals.add('fish'),animals.remove('cat'),如果增加的元素已经有了就不操作,但如果想删除的元素集合里没有就会报错。

    集合大小,len(animals);

    查看集合内是否有某个元素 print(x in animals),有就是True,没有就是False;

    也可以用for循环以及set comprehensions:

animals = {'cat', 'dog', 'fish'}
for idx, animal in enumerate(animals):
print('#%d: %s' % (idx + 1, animal))
# Prints "#1: fish", "#2: dog", "#3: cat" from math import sqrt
nums = {int(sqrt(x)) for x in range(30)}
print(nums) # Prints "{0, 1, 2, 3, 4, 5}"

  4)Tuple:和list很像,差别在于,tuple可以作为字典和集合的元素,而list不行。

    赋值用小括号,d = (5, 6);

    取元素,d[0]。

3. 函数:注意缩进对齐,可以设置默认参数:

def hello(name, loud=False):
if loud:
print('HELLO, %s!' % name.upper())
else:
print('Hello, %s' % name) hello('Bob') # Prints "Hello, Bob"
hello('Fred', loud=True) # Prints "HELLO, FRED!"

4. 类

class Greeter(object):

    # Constructor
def __init__(self, name):
self.name = name # Create an instance variable # Instance method
def greet(self, loud=False):
if loud:
print('HELLO, %s!' % self.name.upper())
else:
print('Hello, %s' % self.name) g = Greeter('Fred') # Construct an instance of the Greeter class
g.greet() # Call an instance method; prints "Hello, Fred"
g.greet(loud=True) # Call an instance method; prints "HELLO, FRED!"

5. Numpy的Array:

    和list一样也是用中括号:

import numpy as np

a = np.array([1, 2, 3])   # Create a rank 1 array
print(type(a)) # Prints "<class 'numpy.ndarray'>"
print(a.shape) # Prints "(3,)"
print(a[0], a[1], a[2]) # Prints "1 2 3"
a[0] = 5 # Change an element of the array
print(a) # Prints "[5, 2, 3]" b = np.array([[1,2,3],[4,5,6]]) # Create a rank 2 array
print(b.shape) # Prints "(2, 3)"
print(b[0, 0], b[0, 1], b[1, 0]) # Prints "1 2 4" a = np.zeros((2,2)) # Create an array of all zeros
print(a) # Prints "[[ 0. 0.]
# [ 0. 0.]]" b = np.ones((1,2)) # Create an array of all ones
print(b) # Prints "[[ 1. 1.]]" c = np.full((2,2), 7) # Create a constant array
print(c) # Prints "[[ 7. 7.]
# [ 7. 7.]]" d = np.eye(2) # Create a 2x2 identity matrix
print(d) # Prints "[[ 1. 0.]
# [ 0. 1.]]" e = np.random.random((2,2)) # Create an array filled with random values
print(e) # Might print "[[ 0.91940167 0.08143941]
# [ 0.68744134 0.87236687]]"

    也可以取子集,x = y[1, :],取出第一行的全部元素;

    有一个技巧是对矩阵的每一行某个元素进行操作:

# Create a new array from which we will select elements
a = np.array([[1,2,3], [4,5,6], [7,8,9], [10, 11, 12]]) # Create an array of indices
b = np.array([0, 2, 0, 1]) # Select one element from each row of a using the indices in b
print(a[np.arange(4), b]) # Prints "[ 1 6 7 11]"

    可以对array的序号进行筛选:

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

bool_idx = (a > 2)   # 对每个元素判断是否大于2.
print(bool_idx) # Prints "[[False False]
# [ True True]
# [ True True]]" # 可以序号为真的取出来
print(a[bool_idx]) # Prints "[3 4 5 6]" # We can do all of the above in a single concise statement:
print(a[a > 2]) # Prints "[3 4 5 6]"

最新文章

  1. C# POST请求
  2. 常用Eclipse快捷方式
  3. mysql创建用户
  4. XAML(2) - 依赖属性
  5. Google 网络库Volley简介
  6. Javascript高级程序设计
  7. Codeforces Round #335 (Div. 1) C. Freelancer&#39;s Dreams 计算几何
  8. C++ 进阶必备
  9. AngularJS 的一些坑
  10. strlen 与 sizeof
  11. jQuery源码逐行分析学习02(第一部分:jQuery的一些变量和函数)
  12. C++ 模板基础
  13. Lodop打印如何隐藏table某一列
  14. 100-days: thirteen
  15. SqlBulkCopy批量添加
  16. Python 学习 第九篇:模块
  17. Java 泛型通配符
  18. python调用exe程序
  19. 172. Factorial Trailing Zeroes(阶乘中0的个数 数学题)
  20. css position 和 块级/行内元素解释

热门文章

  1. 为什么声明了int型的变量并且直接初始化后,int型变量的地址一直在变化?
  2. CommandNotFoundError: No command &#39;conda conda&#39;.
  3. 【前缀思想】二叉树中所有距离为 K 的结点
  4. 微信公众号关联小程序AppID是什么
  5. Springboot项目绑定域名,使用Nginx配置Https
  6. MySQL的InnoDB的幻读问题
  7. web项目servlet&amp;jsp包失效问题
  8. 计蒜客 王子救公主(DFS)
  9. pyQt 流布局的一个例子
  10. 运行SQL文件报错Invalid ON UPDATE clause for &#39;create_date&#39; column