边学边记
1、numpy对矩阵的处理很强大,少用list,多使用array
np.array( x):将输入数据转化为一个类型为type的ndarray
np.asarray( array ):将输入数据转化为一个新的ndarray
np.array( )与np.asarray( )区别:当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会
2、np.shape( )
得到矩阵的形状
3、np.reshape( )
将矩阵变形,得到副本。
4、np.delete( )
删除某轴的某个元素
>>> arr = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
>>> arr
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
>>> np.delete(arr, 1, 0)
array([[ 1, 2, 3, 4],
[ 9, 10, 11, 12]])
5、np.vstack( )
纵向连接矩阵
>>> a = np.array([1, 2, 3])
>>> b = np.array([2, 3, 4])
>>> np.vstack((a,b))
array([[1, 2, 3],
[2, 3, 4]])
6、np.hstack( )
横向连接矩阵
>>> a = np.array((1,2,3))
>>> b = np.array((2,3,4))
>>> np.hstack((a,b))
array([1, 2, 3, 2, 3, 4])
>>> a = np.array([[1],[2],[3]])
>>> b = np.array([[2],[3],[4]])
>>> np.hstack((a,b))
array([[1, 2],
[2, 3],
[3, 4]])
7、np.stack(arrays, axis=0)
连接矩阵
>>> a = np.array([1, 2, 3])
>>> b = np.array([2, 3, 4])
>>> np.stack((a, b))
array([[1, 2, 3],
[2, 3, 4]])
>>> np.stack((a, b), axis=-1)
array([[1, 2],
[2, 3],
[3, 4]])
8、np.concatenate((a1, a2, …), axis=0)
连接矩阵
>>> a = np.array([[1, 2], [3, 4]])
>>> b = np.array([[5, 6]])
>>> np.concatenate((a, b), axis=0)
array([[1, 2],
[3, 4],
[5, 6]])
>>> np.concatenate((a, b.T), axis=1)
array([[1, 2, 5],
[3, 4, 6]])
9、np.random.permutation()
对数据洗牌,常用于数据预处理
import numpy as np
a = [1,2,3,4,5,6]
b = np.random.permutation(a)
print b
>>>[1 4 5 6 2 3]
10、np.ndarry()
生成矩阵
#coding:utf-8
import numpy as np
a = np.ndarray(shape=(3,2),dtype=float)
print a
>>>[[ 6.92620649e-310 1.29780452e-316]
[ 6.92619672e-310 6.92620665e-310]
[ 4.67416140e-317 6.92619572e-310]]
可以认为全0矩阵