Python numpy

NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(通常是元素是数字)。在NumPy中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)

#!python2
#-*-coding:utf-8-*-
import numpy as np


print np.version.version

#numpy.ndarray
#一维数组
#list
print np.array([1,2,3])
[1 2 3]
#tuple
print np.array((1.1,1.2,1.3,2))
[ 1.1  1.2  1.3  2. ]
print type(np.array([1,2,3]))
<type 'numpy.ndarray'>

#二维数组

print np.array([[1,2],[3,4]])

[[1 2]
 [3 4]]
 
#指定数据类型 numpy.int32, numpy.int16, and numpy.float64

print np.array([1,2,3],dtype=np.int32)

[1 2 3]

#arange()

print np.arange(15)
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]
print type(np.arange(15))
<type 'numpy.ndarray'>

print np.arange(15).reshape(3,5)

[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]

#使用numpy.linspace
 
print np.linspace(1,3,9)

#使用numpy.zeros,numpy.ones,numpy.eye等方法可以构造特定的矩阵

print np.zeros([3,4])
print np.ones((4,4))
print np.eye(5)

#三维数组
print np.zeros((2,2,3))

#数组属性

a=np.zeros((1,2,2))
#数组的维数
a.ndim
#每一维度数组大小
a.shape
#数组的元素数
a.size
#元素类型
a.dtype
#每个元素所占字节数
a.itemsize

#数组索引,切片,赋值

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

print a[1,2]
6
print a[1,:]
[4 5 6]
print a[1,1:2]
[5]
a[1,:]=[7,8,9]

for x in np.linspace(1,4,5):
    print x
    
#基本运算

a=np.ones((2,2))
b=np.eye(2)

print a>2

print a+b
print a-b
print b*2
print a*b
print b/(a*2)
print (a*2)**4

a.sum()
#计算每一列
a.sum(axis=0)
a.min()
a.max()

np.sin(a)
np.max(a)
np.floor(a)
np.exp(a)
#矩阵乘法
np.dot(a,a)

#合并

print np.vstack((a,b))
print np.hstack((a,b))


#以上俩种方法没有涉及浅copy问题

c=np.vstack((a,b))
a[0,1]=5
b[1,0]=3
print a,b,c


#数组对象的浅copy与深copy

a=np.ones((2,2))
a=b
b is a
True
c=a.copy()
c is a
False

#基本的矩阵运算

#转秩

a=np.array([[1,2],[3,4]])
a.transpose()
#迹 就是主对角元素之和
np.trace(a)
 
#numpy.linalg有很多关于矩阵运算

import numpy.linalg as nplg
#特征值,特征向量
nplg.eig(a)

下面link是个详细的参考

http://blog.chinaunix.net/uid-21633169-id-4408596.html

原文地址:https://www.cnblogs.com/dadadechengzi/p/6646149.html