附录:python and numpy

http://cs231n.github.io/python-numpy-tutorial/

Python is a great general-purpose programming language on its own, but with the help of a few popular libraries (numpy, scipy, matplotlib) it becomes a powerful environment for scientific computing.

#PYTHON基础
数据类型
特殊:list,dictionary,set,tuples

运算符
字符串操作
x ** 2 平方

流程控制语句
if,while,for
使用缩进表示语言结构

函数
定义和使用

类定义和使用
默认参数self的理解
类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值。self指向对象(instance)本身


#python如何安装第三方软件包
1 下载源码包
在github 或者 pypi上找到源码。找到源码格式大概都是 zip、tar.zip、tar格式的压缩包。解压这些包,进入解压好的文件夹,通常会看见一个 setup.py 的文件。打开命令行,进入该文件夹。运行
python setup.py install
这个命令,就能把这个第三库安装到系统里,也就是你的 Python 路径,windows大概是在 C:Python2.7Libsite-packages。
Linux会在 /usr/local/lib/python2.7/dist-packages。
Mac 应该在 /Library/Python/2.7/site-packages

2 使用pip or easy_install
pip install flask
pip uninstall flask
pip intall flask-master.zip 使用pip安装下载的zip文件的源码包

#附录
Python2.6不支持 set的列举定义 animals={'cat','dog'} 会有语法错误。
3与2.7的版本有较大的不同,不能向下兼容。
Somewhat confusingly, Python 3.0 introduced many backwards-incompatible changes to the language, so code written for 2.7 may not work under 3.4 and vice versa.


遇到问题,请多使用documentation
https://docs.python.org/2/

python字符集的问题
存储统一使用unicode字符集


#PYSTROM
更改pystrom使用的python版本
Project>Interpreter

如果要使用中文注释,使用#coding=utf-8

在run中执行py文件

可以选中语句,然后右键run the selection in the console

可以单步调试

# coding=utf-8
# variables' types
# list
tmp2 = [1, 2, 3, "myItem"]
# you can use negative value for indexing
print tmp2[-1]
tmp2.append(234)
for item in tmp2:
    print item

# dictionary
tmp3 = {1: "nice", "key2": "bad"}
print tmp3[1]
tmp3["3"] = "test"
del tmp3[1]
for item in tmp3:
    print item
    print tmp3[item]

# set
animals = {'cat', 'dog'}
animals.add('erer')
animals.add("cat")
animals.remove("dog")
print 12 in animals

# tuple
tuple5 = (1, 2)
tmp6 = {tuple5, 12}
print (1, 2) in tmp6


# operator
tmp = 2**4
print tmp

# string
name = "rex"
print 'Hello, %s' % name

# control structure
# condition
if tmp == 12:
    print "yes"
elif tmp < 0:
        print 'Hello, %d' % tmp
else:
    print "no"

# loop
count = 0
while count < 9:
    print 'The count is:', count
    count += 1


# define a function
def sign(x):
    name1 = "rex"
    if x > 0:
        return 'positive'
    elif x < 0:
        print 'Hello, %s' % name1
        return 'negative'
    else:
        return 'zero'


# defining classes
class Greeter(object):
    # Constructor
    def __init__(self, name1):
        self.name = name1  # 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

# create an instance of a class
tmpClass = Greeter("rex")
# 所以加点访问的,可能是包名/也可能是类的某个instance名

  

# coding=utf-8
# numpy
import numpy as np
tmp = np.array([1, 2, 3])
print tmp[1]
tmp2 = np.random.random((1, 2))
# 比 matlab 要繁琐的多,创建矩阵,要使用tuple
print tmp2
a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
# get a row
print a[1,:]
print a[0,:]
print a[:, 1]
print np.arange(3) # 0 1 2
# calculate the items
# Mutate one element from each row of a using the indices in b
b = np.array([1, 2, 3])
a[np.arange(3), b] += 10
print a

  

原文地址:https://www.cnblogs.com/ceo1207/p/6492414.html