Python-Numpy常用知识点

1.读取文件 

numpy.genfromtxt("*.txt",delimiter=',',dtype=str)-["文件位置“,“分隔符”,“读取类型”]

print(help(numpy.genfromtxt)) 类似Matlab的Help查询功能;

2.创建向量和数组

vector=numpy.array([1,2,3,4])

print(vector.shape)

matrix=numpy.array([5,10,15],[20,25,30])

print(matrix.shape)

3.numpy.array里的东西必须是同一类型;

numbers=numpy.array([1,2,3,4])

numbers.dtype,获取此array的类型;

dtype('int32')

numbers=numpy.array([1,2,3,4.0])

dtype('float64')

4. (1) 获取矩阵中的某一列

matrix=numpy.array([[5,10,15],[20,25,30],[35,40,45]])

print(matrix[:,1])  

Out: [10 25 40]

(2)获取矩阵中的某两列

print(matrix[:,0:2])

([5 10] [20 25] [35 40])

5. 判断array里有没有某个数

(1) vector=numpy.array([1,2,3,4])

vector==2

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

(2)判断出来的Bool类型当成索引;

例子1:(接上)equal_to_two=(vector==2)

print(vector[equal_to_two])

Out: [2]

例子2:matrix=numpy.array([5,10,15],[20,25,30],[35,40,45])

second_column_25=(matrix[:,1]==25)

print second_column_25

print(matrix[second_column_25,;]) 找出含有25索引的那一行;

6.逻辑语法

与的操作:&

或的操作:|

7.array类型变换

vector=numpy.array(["1","2","3"])

print vector.dtype

print vector

vector=vector.astypr(float)

print (vector.dtype)

print(vector)

st

['1','2','3']

float64

[1,2,3]

8.求Vector的最小值

vector.min()

matrix.sum(axis=1)

Out: arry([30,75,120]) 

axis=1 维度为每一行相加

axis=0 维度为每一列相加   matrix.sum(axis=0)

9. numpy.arrange(15)--创造出15个元素的数组

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

np.arrange(15).reshape(3,5)  三行五列;

a.shape 显示矩阵行列格式;

a.ndim  矩阵维度 二维;

a.dtype.name 'int32';

a.size   矩阵的元素个数;

np.zeros((3,4)) 初始化一个空矩阵

np.ones((2,3,4),dtype=np.int32) 创建一个全为1的矩阵,类型为int;

np.arrange(10,30,5) 等差数列,<30;

np.random.random((2,3))  随机数矩阵(-1,1)

np.linspace(0,2*pi,100)  取100个数,间隔相同;

矩阵的相加减;

numbers=numpy.array([1,2,3,4])

print(a<3) [true,true,false,false]

矩阵的乘法:A.dot(B)或 np.dot(A,B) 

矩阵每个位置的数值相乘:A*B 

B=np.arrange(3)

print(np.exp(B))

np.sqrt(B)

np.floor 向下取整;a=np.floor(10*np.random.random((3,4)))

a.ravel() 把矩阵变成向量;

a.T  矩阵的转置

a.reshape(3,-1)  指定一个维度,另外一个可以出来,-1代表默认,让程序自动计算;

np.hstack(a,b) 拼接矩阵 h 代表横着拼;np.vstack(a,b) v代表竖着拼;

np.hsplit(a,3) 按行切分成3份 (2,12)切成(2,4)vsplit:竖着切;

np.hsplit(a,(3,4)) 指定位置切分;指定第三行和第4行;

10. a=b 直接等号赋值,a,b指向内存位置一样;print(id(a))

c=a.view() c[0,4]=1234; a,b虽然指向不同东西,不同东西共用一套值;浅赋值;

d=a.copy()  a,b之间没关系;深赋值;

11. 挑最大

data=np.sin(np.arange(20)).reshape(5,4)

ind=data.argmax(axis=0) 按列中最大数的索引;

print(ind) 按照索引值去找这个值

data_max=data[ind,range(data.shape[1])]

print(data_max)

12. b=np.tile(a,(3,5)) 行3倍,列5倍;

b=np.sort(a,axis=1) 

j=np.argsort(a) 求出最小值的索引;a[j] 按从小到大排序;

 

 

 

 

 

你可能感兴趣的:(Python,Python)