首页 > 其他分享 >numpy其他函数

numpy其他函数

时间:2024-03-05 17:00:27浏览次数:23  
标签:12 函数 data random 50 np 其他 print numpy

numpy其他函数

import numpy as np

# 数组拼接
t1 = np.arange(12).reshape((2, 6))
t2 = np.arange(12, 24).reshape((2, 6))
print(t1)
print(t2)

print("*"*50)
print(np.vstack((t1, t2)))

print("*"*50)
print(np.hstack((t1, t2)))
[[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]]
[[12 13 14 15 16 17]
 [18 19 20 21 22 23]]
**************************************************
[[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]
 [12 13 14 15 16 17]
 [18 19 20 21 22 23]]
**************************************************
[[ 0  1  2  3  4  5 12 13 14 15 16 17]
 [ 6  7  8  9 10 11 18 19 20 21 22 23]]
# 交换数组的行和列
t = np.arange(12, 24).reshape((3, 4))
print(t)
print("*"*50)

# 交换行
t[[1, 2], :] = t[[2, 1], :]
print(t)
print("*"*50)

# 交换列
t[:, [0, 2]] = t[:, [2, 0]]
print(t)
print("*"*50)
[[12 13 14 15]
 [16 17 18 19]
 [20 21 22 23]]
**************************************************
[[12 13 14 15]
 [20 21 22 23]
 [16 17 18 19]]
**************************************************
[[14 13 12 15]
 [22 21 20 23]
 [18 17 16 19]]
**************************************************

现在希望把之前案例中两个国家的数据方法一起来研究分析,同时保留国家的信息(每条数据的国家来源)。

us_file_path = "./youtube_video_data/US_video_data_numbers.csv"
uk_file_path = "./youtube_video_data/GB_video_data_numbers.csv"

us_data = np.loadtxt(us_file_path, dtype="int", delimiter=",")
uk_data = np.loadtxt(uk_file_path, dtype="int", delimiter=",")

# 可以在最左边添加一列, 为0代表美国, 为1代表英国
zeros_data = np.zeros((us_data.shape[0], 1)).astype("int")
ones_data = np.ones((uk_data.shape[0], 1)).astype("int")

us_data = np.hstack((zeros_data, us_data))
uk_data = np.hstack((ones_data, uk_data))

# 拼接两组数据
final_data = np.vstack((us_data, uk_data))
print(final_data)
[[      0 4394029  320053    5931   46245]
 [      0 7860119  185853   26679       0]
 [      0 5845909  576597   39774  170708]
 ...
 [      1  109222    4840      35     212]
 [      1  626223   22962     532    1559]
 [      1   99228    1699      23     135]]
# 获取最大值和最小值的位置
t = np.arange(12).reshape((3, 4))
print(t)

# axis=0表示纵向列
print(np.argmax(t, axis=0))
# axis=1表示横向行
print(np.argmax(t, axis=1))
print(np.argmin(t, axis=1))

# 创建一个全0或全1的数组
t1 = np.zeros((3, 4))
t2 = np.ones((3,4))
print("*"*50)
print(t1)
print(t2)

# 创建一个n维单位矩阵
t3 = np.eye(3)
print("*"*50)
print(t3)

# 查看每行最大的值的位置
print(np.argmax(t3, axis=1))
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
[2 2 2 2]
[3 3 3]
[0 0 0]
**************************************************
[[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. 1. 0.]
 [0. 0. 1.]]
[0 1 2]
# 均匀分布, 在相同的大小范围内的出现概率是相等的
# 正态分布, 呈钟型,两头低,中间高,左右对称

# rand(d0, d1, ..., dn)
# 产生一个给定形状的数组,数组中的数值符合[0, 1)的均匀分布
print("rand")
a = np.random.rand(2, 3)
print(a)
print("*"*50)

# randn(d0, d1, ..., dn)
# 产生一个给定形状的数组,数组中的数值符合标准正态分布(均值0,方差1)
print("randn")
b = np.random.randn(2, 3)
print(b)
print("*"*50)

# randint(low, high, shape)
# 生成一个给定形状的数组,数组中的数值是从low(包含)到high(不包含)的随机整数
print("randint")
c = np.random.randint(10, 50, (2, 3))
print(c)
print("*"*50)

# uniform(low, high, size)
# 产生一个数组,数组中的数值符合[low, high)的均匀分布
print("uniform")
d = np.random.uniform(1., 2., (2, 3))
print(d)
print("*"*50)

# normal(loc, scale, size)
# 产生一个数组,数组中的数值符合以loc为均值,scale为标准差的正态分布
print("normal")
e = np.random.normal(0, 1, (2, 3))
print(e)
print("*"*50)

# seed(s)
# 设定随机数生成的种子。使用相同的种子将会产生相同的随机数序列,这对于需要可重复结果的实验非常有用
print("no seed")
a = np.random.rand(2, 3)
print(a)
a = np.random.rand(2, 3)
print(a)
print("*"*50)

print("seed")
np.random.seed(0)
a = np.random.rand(2, 3)
print(a)
np.random.seed(0)
a = np.random.rand(2, 3)
print(a)
rand
[[0.56804456 0.92559664 0.07103606]
 [0.0871293  0.0202184  0.83261985]]
**************************************************
randn
[[ 0.44386323  0.33367433  1.49407907]
 [-0.20515826  0.3130677  -0.85409574]]
**************************************************
randint
[[19 42 41]
 [20 33 45]]
**************************************************
uniform
[[1.18633234 1.73691818 1.21655035]
 [1.13521817 1.32414101 1.14967487]]
**************************************************
normal
[[-0.5409163  -1.32322737 -0.11279892]
 [ 0.90734594  0.81526991  0.22909795]]
**************************************************
no seed
[[0.09928035 0.96980907 0.65314004]
 [0.17090959 0.35815217 0.75068614]]
[[0.60783067 0.32504723 0.03842543]
 [0.63427406 0.95894927 0.65279032]]
**************************************************
seed
[[0.5488135  0.71518937 0.60276338]
 [0.54488318 0.4236548  0.64589411]]
[[0.5488135  0.71518937 0.60276338]
 [0.54488318 0.4236548  0.64589411]]
# 复制与赋值

# a=b 完全不复制, a和b相互影响
# 更改a会影响b, 更改b也会影响a
b = np.arange(6)
a = b
print(a, b, sep='\n')
a[2] = 9
print(a, b, sep='\n')
b[0] = -1
print(a, b, sep='\n')

print("*"*50)
# a = b[:]是视图的操作, 是一种切片, 会创建新的对象a, 但是a的数据完全由b保管, 他们两个的数据变化是一致的
b = np.arange(6)
a = b[:]
print(a, b, sep='\n')
a[2] = 9
print(a, b, sep='\n')
b[0] = -1
print(a, b, sep='\n')

print("*"*50)
# a = b.copy() 是复制, a和b互不影响
b = np.arange(6)
a = b.copy()
print(a, b, sep='\n')
a[2] = 9
print(a, b, sep='\n')
b[0] = -1
print(a, b, sep='\n')
[0 1 2 3 4 5]
[0 1 2 3 4 5]
[0 1 9 3 4 5]
[0 1 9 3 4 5]
[-1  1  9  3  4  5]
[-1  1  9  3  4  5]
**************************************************
[0 1 2 3 4 5]
[0 1 2 3 4 5]
[0 1 9 3 4 5]
[0 1 9 3 4 5]
[-1  1  9  3  4  5]
[-1  1  9  3  4  5]
**************************************************
[0 1 2 3 4 5]
[0 1 2 3 4 5]
[0 1 9 3 4 5]
[0 1 2 3 4 5]
[0 1 9 3 4 5]
[-1  1  2  3  4  5]

标签:12,函数,data,random,50,np,其他,print,numpy
From: https://www.cnblogs.com/xushengxiang/p/18054421

相关文章

  • Day1.numpy
    numpy数组的应用1.创建引入numpy库importnumpyasnp创建对象一维arr=np.array([1,2,3])二维arr=np.array([1,2,3],[4,5,6])#相当于一个二维数组2.常用属性T数组维度的转换dtype数据类型shape数组维度大小,如三行四列astype类型转换3.获取行列数arr......
  • 2024.3.5 esp8266开发学习_arduino常用函数
    2024.3.5esp8266开发学习_arduino常用函数pinMode函数引脚模式选择,模式有INPUT(输入),OUTPUT(输出),INPUT_PULLUP(上拉输入,自动拉高电平)//GPIOFUNCTIONS#defineINPUT      0x00//输入#defineINPUT_PULLUP   0x02//上拉输入#defineINPUT_PULLDOWN_16......
  • 7.Python3 函数
    Python3函数函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。1.函数定义Python定义函数使用def关键字,一般格......
  • doxygen绘制c代码函数调用图 选择的选项
    关于最上边这个选择的workingdirectory这个叫法“工作目录”实在是有点奇怪总之它的作用是左上角File-Save然后把一个Doxyfile文件保存在这个目录,然后才能点击Rundoxygen,否则是不能点击的别的就没啥用了,运行完之后也不会在这个workingdirectory生成或者修改文件 此外......
  • 函数提升和变量提升
    1:函数提升优先级高于变量提升,且不会被同名变量声明时覆盖,但是会被同名变量赋值后覆盖,注意看赋值和打印的位置JavaScript中的函数是一等公民,函数声明的优先级最高,会被提升至当前作用域最顶端。如果前面的函数表达式与之前的函数声明同名,后者会将其覆盖。console.log(a)//ƒa......
  • 基本操作之——正弦函数绘制
    1.周期为2pi正弦函数绘制dev_close_window()dev_open_window(0,0,512,512,'black',WindowID)dev_set_part(0,0,511,511)old_x:=0old_y:=0Rate:=1dev_set_color('red')forx:=1to511by4y:=-sin(x/511.0*2*3.1416*Rate......
  • C++面试,实现memcpy,strcpy这2个函数的功能
    `strcpy`和`memcpy`都是用于内存复制的函数,但它们之间有几个关键的区别:1.**复制的对象**:-`strcpy`主要用于复制字符串,它将从源字符串的起始位置开始复制字符,直到遇到源字符串的空字符('\0'),然后将空字符也复制到目标字符串中,表示字符串的结束。-`memcpy`则是通用的内存复......
  • python 语法之 print 函数和 input 函数
    print函数input函数案例一:圆的周长importmaths=input("圆的半径:\n")s=float(s)c=2*math.pi*sprint(f"圆的周长,{c:.2f}")w=input("请输入天气情况(可选项:晴、阴):")ifw=="晴天":print("play")else:print(f"天气{w}不玩")......
  • 42函数对象
    函数对象#include<iostream>usingnamespacestd;/*template<typenameT>boolmygreater(Ta,Tb){  returna>b;}template<typenameT>boolmyless(Ta,Tb){  returna<b;}*//*1.通过函数对象调用operator(),可以省略函数的调用开销,比通过函数......
  • 编码绕过xss说明和htmlspecialchars函数
    html实体编码JS编码1.htmlspecialchars函数把一些预定义的字符转换为html实体预定义的字符&->&amp;"->"'->'<-><>->gt;<script>--><&ltscript&gt默认绕过绕过方式:payload:'onclick='alert(123)'或者&#......