1.我们有两个国家(英国,美国·)的信息,我们希望把两个数据放到一起研究,同时保留国家的信息(每条数据的国家来源)。我们想保留国家信息,就要在每条数据后面添加一列能代表该国家信息的数据,比如我们在英国的每条数据后面添加一列0,在美国的每条数据后面添加一列1
import numpy as np filepath="./data.csv" filepath1="./data1.csv" #加载国家数据 t1=np.loadtxt(filepath,dtype="int",delimiter=",") t2=np.loadtxt(filepath1,dtype="int",delimiter=",") # print(t1) # print("*"*50) # print(t2) #添加国家信息,对于t1.shape[0],前面我们知道二维数组调用shape会返回一个元组, # 元组的第一个值表示行,所以t1.shape[0]表示所有的行,(t1.shape[0],1)表示 # 所有行的第一列,构造全为0,1的数据 zero_data=np.zeros((t1.shape[0],1)) one_data=np.ones((t2.shape[0],1)) #分别水平拼接一列0,1的数据 t3=np.hstack((t1,zero_data)).astype(int) t4=np.hstack((t2,one_data)).astype(int) # print(t3) # print(t4) #竖直拼接两组数据 t5=np.vstack((t3,t4)) print(t5)
运行结果:
D:\python\python.exe "F:/data_analysis/numpy_randomization method.py" [[ 12383 3123231 312312312 0] [ 85496 5435345 5453453 0] [ 546535 54646 1434555 0] [ 54545234 7567889 790878 0] [ 6546546 125346 788990 0] [ 980435 43570 14315754 1] [ 453578 787980 8254521 1] [ 65498 3424546 7879809 1] [ 254621 6453 68903 1] [ 235436 564690 52125 1]] 进程已结束,退出代码 0
2.numpy其它方法
import numpy as np #创建一个数据全为0的3行4列数组 t1=np.zeros((3,4),dtype=int) print(t1) print("*"*50) #创建一个数据全为1的3行4列数组 t2=np.ones((3,4),dtype=int) print(t2) print("*"*50) #创建一个对角线为1的方针 t3=np.eye(4) print(t3) print("*"*50) #创建一个3行4列数组 t4=np.arange(12).reshape((3,4)) print(t4) print("*"*50) #打印最大值的位置 a=np.argmax(t3,axis=0) print(a) #打印最小值的位置 b=np.argmin(t3,axis=1) print(b)
运行结果:
D:\python\python.exe "F:/data_analysis/numpy_Other methods.py" [[0 0 0 0] [0 0 0 0] [0 0 0 0]] ************************************************** [[1 1 1 1] [1 1 1 1] [1 1 1 1]] ************************************************** [[1. 0. 0. 0.] [0. 1. 0. 0.] [0. 0. 1. 0.] [0. 0. 0. 1.]] ************************************************** [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] ************************************************** [0 1 2 3] [1 0 0 0] 进程已结束,退出代码 0
3.numpy生成随机数
import numpy as np #创建一个2行3列的随机数组,数据是0-1之间的 t1=np.random.rand(2,3) print(t1) print("*"*50) #创建一个2行3列的随机数组,数据是服从标准正态分布的 t2=np.random.randn(2,3) print(t2) print("*"*50) #创建一个2行3列给定上下限范围随机整数的数组 t3=np.random.randint(20,30,(2,3)) print(t3) #随机种子,随机种子的作用是每次都生成相同的数据 np.random.seed(3) t4=np.random.rand(2,3) print(t4)
运行结果:
D:\python\python.exe "F:/data_analysis/numpy_random number.py" [[0.67045782 0.7786758 0.05445591] [0.43521212 0.0922343 0.20843389]] ************************************************** [[-1.51705036 -0.90440962 -0.02482711] [-0.37139545 0.31954795 -2.06626207]] ************************************************** [[28 21 24] [21 20 23]] [[0.5507979 0.70814782 0.29090474] [0.51082761 0.89294695 0.89629309]] 进程已结束,退出代码 0
4.numpy的copy与view
前2个都是浅复制,a,b会相互影响。第3个a,b是互不影响的