四时宝库

程序员的知识宝库

数据分析-numpy的随机方法

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是互不影响的

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接