paython(numpy常用函数)

小弟峰回路转,开始学习python,介绍一下numpy的常用函数,如觉得不全,下方留言!(图是小弟辛勤所画,希望对我们有用)

import numpy as np
world_alcohol = np.genfromtxt("world_alcohol.txt", delimiter=",", dtype="U75", skip_header=1)
print(world_alcohol)
print("~~~~~~~~~~~~~~~~~")
print(type(world_alcohol))


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


vector = np.array([5, 10, 15, 20])
equal_to_ten = (vector == 10)
print (equal_to_ten)
print("~~~~~~~~~~~~~~~~~")
print(vector[equal_to_ten])



vector = np.array(["1", "2", "3"])
print(vector.dtype)
print("~~~~~~~~~~~~~~~~~")
print(vector)
print("~~~~~~~~~~~~~~~~~")
vector = vector.astype(float)
print(vector.dtype)
print("~~~~~~~~~~~~~~~~~")
print(vector)



matrix = np.array([
                [5, 10, 15], 
                [20, 25, 30],
                [35, 40, 45]
             ])
print(matrix.sum(axis=1))
print("~~~~~~~~~~~~~~~~~")
print(matrix.sum(axis=0))



a = np.arange(15).reshape(3, 5)
print(a)
print("~~~~~~~~~~~~~~~~~")
print(a.shape)
print("~~~~~~~~~~~~~~~~~")
print(a.ndim)  #显示这个矩阵的维度
print(a.dtype)
print(a.size)
print("~~~~~~~~~~~~~~~~~")
b = np.zeros((3,4))
print(b)
c = np.ones((2,3,4),dtype=np.int32 )  #产生了一个三维的单位矩阵
print("~~~~~~~~~~~~~~~~~")
print(c)



print(np.arange(10,30,5))   #创建一个矩阵,以10为起点,以5为间隔,30为终点
print("~~~~~~~~~~~~~~~~~")
from numpy import pi    #这里要用到pi,要从numpy中导入,可在这里导入的时候居然不能用它的小名np
print(np.linspace(0,2*pi,10 ))   #从0到2*pi之间等间距的插入10个数
print("~~~~~~~~~~~~~~~~~")
print(np.sin(np.linspace(0,2*pi,10)))



#矩阵的点乘和叉乘
A = np.array([[1,1],[0,1]])
B = np.array([[2,0],[3,4]])
print(A)
print("~~~~~~~~~~~~~~~~~")
print(B)
print("~~~~~~~~~~~~~~~~~")
print(A*B)
print("~~~~~~~~~~~~~~~~~")
print(A.dot(B))  # A.dot(B)这个写法等价于np.dot(A, B)



C = np.arange(3)
print(C)
print("~~~~~~~~~~~~~~~~~")
print(np.exp(C))
print("~~~~~~~~~~~~~~~~~")
print(np.sqrt(C))



a = np.floor(10*np.random.random((3,4)))
print(a)
print("~~~~~~~~~")
print(a.shape)
print("~~~~~~~~~")
b = a.ravel()           #将矩阵拉成一个向量
print(b)
print("~~~~~~~~~")
a.shape = (2,6)
print(a)
print("~~~~~~~~~")
print(a.T)  #转置
print("~~~~~~~~~")
print(a.resize(6,2))  #和上面的a.shape = (2,6)的功能一样
print("~~~~~~~~~")
print(a)



a = np.floor(10*np.random.random((2,2)))
b = np.floor(10*np.random.random((2,2)))
print(a)
print("~~~~~~~~~")
print(b)
print("~~~~~~~~~")
print(np.hstack((a,b)))  #将两个矩阵横着拼在一起
print("~~~~~~~~~")
print(np.vstack((a,b)))  #将两个矩阵竖着拼在一起



a = np.floor(10*np.random.random((2,12)))
print(a)
print("~~~~~~~~~")
b = np.hsplit(a,3)   # 将a分割成3个矩阵,并将这三个矩阵拼接组成一个新矩阵,该操作不会影响a矩阵本身,它是产生了一个新的矩阵
print(b)
print("~~~~~~~~~")
print(b[1])
print("~~~~~~~~~")
print(a)
print("~~~~~~~~~")
c = np.hsplit(a,(3,4))# 将a从第3列分割开,从第4列分割开,然后就产成了3个矩阵,
print(c)
print("~~~~~~~~~")
print(c[2])



a = np.arange(12)
b = a
print(b is a) 
print("~~~~~~~~")
b.shape = (3,4)  #(3,4)和3,4效果一样都表示元组
print(a)
print("~~~~~~~~")
print(b)
print(a.shape)
print("~~~~~~~~")
print(id(a))
print(id(b))



a = np.arange(12)
c = a.view()       # 这样做a和c是不同的内存,但它们公共数据,不共用其形式
print(c is a)
print("~~~~~~~~")
c.shape = (2,6)
print(a)
print("~~~~~~~~")
print(c)
print("~~~~~~~~")
c[0,4] = 124
print(a)
print("~~~~~~~~")
print(c)



a = np.arange(12)
d = a.copy()
print(a is d)   # is判断a和d是否共用同一个地址,即是否为同一个东西
d[0] = 9999
print(d)
print("~~~~~~~~")
print(a)




data = np.sin(np.arange(20)).reshape(5,4)
print(np.arange(20))
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~")
print(data)
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~")
ind = data.argmax(axis = 0)  # 找出每列中最大元素的位置
print(ind)
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~")
data_max = data[ind,range(data.shape[1])]
print(data_max)
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~")
print(data.shape)           # 返回矩阵的大小(行,列),返回元祖 
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~")
print(data.shape[1])
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~")
a = range(2)
print(a)
print(a[1])
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~")
print(data.max(axis=0))
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~")
print(data_max == data.max(axis=0))
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~")
print(all(data_max == data.max(axis=0)))



a = np.arange(0,40,10)
print(a)
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~")
b = np.tile(a,(3,5)) #title 对a进行一个扩展
print(b)
print(b.shape)



a = np.array([[4,3,5],[1,2,1]])
print(a)
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~")
b = np.sort(a,axis=1)   #按行内由小到大重新排列
print(b)
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~")
print(a)
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~")
a.sort(axis=1)   #上面那种排序方式,对a进行排序后给了b,但未对a本身进行排序。这种方法,是对a本身进行了排序
print(a)
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~")
c = np.array([4,3,1,2])
print(c)
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~")
j = np.argsort(c)   #找出c中由小到大的元素索引
print(j)
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~")
print(c[j])

猜你喜欢

转载自blog.csdn.net/qq_24369689/article/details/83903842