numpy

a= np.array(a)
a.shape
a.dtype
a.ndim
np.zeros(10)
np.zeros((3,6))
np.empty((2,2,2))
np.arange(10)

改变数据类型
a=np.array([1,2,3],dtype=np.float64)
a=a.astype(np.float64)


arr = np.array([[1,2,3],[4,5,6]])
arr **2
arr * 2
arr +2
1/arr

切片
a[5:8]=64
数组的切片是原始数组的视图,修改切片会反映到原始数据上

a[5:8].copy() 产生副本

a=array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])

a[1][1]
a[1,1]


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

[[ 7, 8, 9],
[10, 11, 12]]])


标量值和数组都能赋给a[0]


b=array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])

b[:2][1:]
b[1,:2] b[2,:1]

布尔型索引

names=np.array(['bob','joe','will','bob','will','joe','joe'])
data=np.random.randn(7,4)

names == 'bob'
array([ True, False, False, True, False, False, False], dtype=bool)

data[names=='bob'] 数组索引
data[names=='bob',2:]
data[names=='bob',3]
data[names!='bob']
data[-(names=='bob')]
data[(names=='bob')|(names=='will')]

data[data<0] = 0
data[names != 'joe'] =7

花式索引:
arr=array([[ 0., 0., 0., 0.],
[ 1., 1., 1., 1.],
[ 2., 2., 2., 2.],
[ 3., 3., 3., 3.],
[ 4., 4., 4., 4.],
[ 5., 5., 5., 5.],
[ 6., 6., 6., 6.],
[ 7., 7., 7., 7.]])

arr[[4,3,0,6]]
arr[[-3,-5,-7]]

arr=np.arange(32).reshape((8,4))
arr=array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23],
[24, 25, 26, 27],
[28, 29, 30, 31]])

arr[[1,2,3,4],[1,2,3,0]]
(1,1)(2,2)(3,3)(4,0)

arr[[1,2,3,4]][:,[1,2,3,0]]
arr[np.ix_([1,2,3,4],[1,2,3,0])]

数组转置和轴对称

arr=np.arange(15).reshape((3,5))
arr.T

内积
np.dot(arr,arr.T)


通用函数
arr=np.arange(10)
np.sqrt(arr)
np.exp(arr)

x,y=randn(8),randn(8)
np.maximum(x,y)


数组处理数据
a=np.arange(-5,5,0.01)
x,y=np.meshgrid(a,a)

 

result = np.where(cond,x,y)
result=[(x if c else y) for x,y,c zip(cond,xarr,yarr)]

 

arr = np.random.randn(5,4) 正态分布数据
arr.mean()
np.mean(arr)

arr.mean(axis=1) arr.mean(1)
arr.sum()


arr=randn(120)
(arr>0).sum()


bools=np.array([False,False,True,False])
bools.any()
bools.all()

 

arr= randn(8)
arr.sort() 由小到大

arr=randn(5,3)
arr.sort(1)

唯一化:
names = np.array([1,2,1,2,3])
np.unique(names) 去重

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

array([True, True, True, False, False, False], dtype=bool)

 

arr= np.arange(10)
np.save('filename',arr) 保存为二进制文件
np.load(‘filename’)

np.savez('filrname',a=arr,b=arr)
a b 作为键取数据

np.loadtxt('filename',delimeter=',')
np.savetxt('filename',arr,delimeter=':')


随机数生成
sample= np.random.normal(size=(4,4))

 

pandas
a= Series([1,2,-3,0])
a.values
a.index

a= Series([1,2,-3,0],index=['a','b','c','d']) 自定义索引

 

posted @ 2016-08-11 17:26  小_龟  阅读(221)  评论(0编辑  收藏  举报