数据分析与可视化 Numpy数组

1.创建数组

import numpy as np
a=np.array([1,2,3,4])
a

array([1, 2, 3, 4])

print(a)

[1 2 3 4]

b = np.array((2,4,6,8))
print(b)

[2 4 6 8]

c=np.array([[1,2,3,4],[5,6,7,8]])
print(c)

[[1 2 3 4]
[5 6 7 8]]

d=np.array([1,2,3,4],dtype='float64')
print(d)

[1. 2. 3. 4.]

print(d.dtype)

float64

e=np.arange(10)
print(e)

[0 1 2 3 4 5 6 7 8 9]

f=np.arange(0,1,0.2)
print(f)

[0. 0.2 0.4 0.6 0.8]

# 等差数列
g=np.linspace(0,1,5)
print(g)

[0. 0.25 0.5 0.75 1. ]

g=np.linspace(0,1,10)
print(g)

[0. 0.11111111 0.22222222 0.33333333 0.44444444 0.55555556
0.66666667 0.77777778 0.88888889 1. ]

# 等比(用得比较少)
h=np.logspace(0,1,5) # 以10为底,10的0次方为1
print(h)

[ 1. 1.77827941 3.16227766 5.62341325 10. ]

# 产生全0一维数组
arr1=np.zeros(4)
print(arr1)
print(arr1.dtype)

[0. 0. 0. 0.]
float64

# 产生全0二维数组
arr2=np.zeros([4,3],dtype='int32')
print(arr2)

[[0 0 0]
[0 0 0]
[0 0 0]
[0 0 0]]

arr3 = np.ones(4)
print(arr3)

[1. 1. 1. 1.]

arr4 = np.ones([4,3])
print(arr4)

[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]

# 对角阵(用得较少)
arr5=np.diag([1,2,3,4])
print(arr5)

[[1 0 0 0]
[0 2 0 0]
[0 0 3 0]
[0 0 0 4]]

# 创建对角为1其余为0的数组 
arr6=np.eye(5)  # 5行5列
print(arr6)

[[1. 0. 0. 0. 0.]
[0. 1. 0. 0. 0.]
[0. 0. 1. 0. 0.]
[0. 0. 0. 1. 0.]
[0. 0. 0. 0. 1.]]

arr7=np.array([[1,2,3],[4,5,6]])
print(arr7)
print('ndim:',arr7.ndim)

[[1 2 3]
[4 5 6]]
ndim: 2

print('size:',arr7.size)

size: 6

print(arr7.dtype)

int32

arr8=np.array([[1,2,3],[4,5,6]])
print(arr8)

[[1 2 3]
[4 5 6]]

# 设置数组的shape属性
arr8.shape=(3,2)
print(arr8)

[[1 2]
[3 4]
[5 6]]

# 修改数据类型
arr9=np.arange(8)
print(arr9.dtype)
arr10 = arr9.astype(np.float64)
print(arr10.dtype)

int32
float64

2.产生随机数

arr1=np.random.randint(100,200,10)
print(arr1)

[192 185 187 156 162 174 143 106 150 140]

# randint 产生随机整数
arr2 = np.random.randint(100,200,size=(3,3))
print(arr2)

[[160 142 167]
[127 134 163]
[125 126 150]]

arr3=np.random.rand(5)
print(arr3)

[0.25881521 0.91028959 0.35347205 0.27666183 0.37972008]

# 产生3行3列0到1的随机数
arr4=np.random.rand(3,3)
print(arr4)

[[0.96559617 0.03875879 0.46359674]
[0.106237 0.96643687 0.78471041]
[0.81012802 0.89996791 0.51034123]]

# 确定随机生成器的种子
np.random.seed(0)
arr5=np.random.rand(3,3)
print(arr5)

[[0.5488135 0.71518937 0.60276338]
[0.54488318 0.4236548 0.64589411]
[0.43758721 0.891773 0.96366276]]

# 确定随机生成器的种子
np.random.seed(10)
arr5=np.random.rand(3,3)
print(arr5)

[[0.77132064 0.02075195 0.63364823]
[0.74880388 0.49850701 0.22479665]
[0.19806286 0.76053071 0.16911084]]

# 用于生成一个0到1的随机浮点数0到1
np.random.random(5)

array([0.38344152, 0.79172504, 0.52889492, 0.56804456, 0.92559664])

# 返回一个随机的浮点数
np.random.uniform(1,5)

1.2841442327915478

# 从序列中随机选取一个整数,返回的是一个字符,而不是列表
names=['Mike','Tom','Peter','Jimay']
np.random.choice(names)

‘Mike’

# random.shuffle将一个列表(只针对列表)中的数据随机打乱
names=['Mike','Tom','Peter','Jimay']
print(names)
np.random.shuffle(names)
print(names)

[Mike’, ‘Tom’, ‘Peter’, ‘Jimay’]
[‘Peter’, ‘Jimay’, ‘Mike’, ‘Tom’]

# random.sample()用于无重复的随机抽样
from random import sample
number = [1,2,3,4,5,6,7,8,9,10]# 从中随机选择6个数据
sample(number,6)

[10, 2, 1, 5, 3, 7]

# import random
from random import sample
list1=[1,2,3,4,5]
print(sample(list1,3))

[4, 3, 2]

3.数组变化

import numpy as np
arr1=np.arange(8)
print(arr1)

[0 1 2 3 4 5 6 7]

arr2=arr1.reshape(2,4)
print(arr2)

[[0 1 2 3]
[4 5 6 7]]

arr3=arr1.reshape(4,-1)
print(arr3)

[[0 1]
[2 3]
[4 5]
[6 7]]

# 数组的重塑 一维数组变二维数组
arr4=np.arange(12).reshape(3,4)
print(arr4)

[ 0 1 2 3 4 5 6 7 8 9 10 11]

# 数组的重塑 二维数组变一维数组
arr5=arr4.ravel()
print(arr5)

[ 0 1 2 3 4 5 6 7 8 9 10 11]

# 数组的合并
arr6=np.arange(6).reshape(3,2)
print(arr6)

[[0 1]
[2 3]
[4 5]]

arr7=arr6*2
print(arr7)

[[ 0 2]
[ 4 6]
[ 8 10]]

# 横向合并
arr8=np.hstack((arr6,arr7))
print(arr8)

[[ 0 1 0 2]
[ 2 3 4 6]
[ 4 5 8 10]]

# 纵向合并
arr9=np.vstack((arr6,arr7))
print(arr9)

[[ 0 1]
[ 2 3]
[ 4 5]
[ 0 2]
[ 4 6]
[ 8 10]]

arr10=np.concatenate((arr6,arr7),axis=1)# 横向合并
print(arr10)

[[ 0 1 0 2]
[ 2 3 4 6]
[ 4 5 8 10]]

arr11=np.concatenate((arr6,arr7),axis=0) # 纵向合并
print(arr11)

[[ 0 1]
[ 2 3]
[ 4 5]
[ 0 2]
[ 4 6]
[ 8 10]]

数组分割

arr1=np.arange(36).reshape(6,6)
print(arr1)

[[ 0 1 2 3 4 5]
[ 6 7 8 9 10 11]
[12 13 14 15 16 17]
[18 19 20 21 22 23]
[24 25 26 27 28 29]
[30 31 32 33 34 35]]

# 横向分割
np.hsplit(arr1,3)

[array([[ 0, 1],
[ 6, 7],
[12, 13],
[18, 19],
[24, 25],
[30, 31]]),
array([[ 2, 3],
[ 8, 9],
[14, 15],
[20, 21],
[26, 27],
[32, 33]]),
array([[ 4, 5],
[10, 11],
[16, 17],
[22, 23],
[28, 29],
[34, 35]])]

# 纵向分割
np.vsplit(arr1,3)

[array([[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11]]),
array([[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23]]),
array([[24, 25, 26, 27, 28, 29],
[30, 31, 32, 33, 34, 35]])]

np.split(arr1,3,axis=1)

[array([[ 0, 1],
[ 6, 7],
[12, 13],
[18, 19],
[24, 25],
[30, 31]]),
array([[ 2, 3],
[ 8, 9],
[14, 15],
[20, 21],
[26, 27],
[32, 33]]),
array([[ 4, 5],
[10, 11],
[16, 17],
[22, 23],
[28, 29],
[34, 35]])]

# 纵向分割
np.split(arr1,3,axis=0)

[array([[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11]]),
array([[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23]]),
array([[24, 25, 26, 27, 28, 29],
[30, 31, 32, 33, 34, 35]])]

# 数组的转置
arr1=np.arange(6).reshape(3,2)
print(arr1)

[[0 1]
[2 3]
[4 5]]

# 数组的转置
arr1.transpose((1,0)) # 轴编号 

array([[0, 2, 4],
[1, 3, 5]])

arr1.T

array([[0, 2, 4],
[1, 3, 5]])

# 轴对换
arr1.swapaxes(0,1)

array([[0, 2, 4],
[1, 3, 5]])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/79423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重磅开赛!“山东工行杯”山东省第五届数据应用创新创业大赛报名火热进行中!

为进一步调动全社会参与数据价值挖掘和应用创新积极性,促进数据要素高效流通,释放数据价值,赋能经济社会高质量发展,探索公共数据资源与公共服务、社会生活、民生改善及经济建设的数字化结合方式,促进公共数据和企业数…

记录一次Flink安装记录

系统Ubuntu18 1.拉取镜像 #默认拉取最新版本 docker pull flink:1.14.4-scala_2.12-java8 #检查镜像 docker images | grep flink 2.编写flink的yaml文件 注意:云服务器需要设置安全策略放行8081端口,否则访问失败 注意2:docker-compose 版…

创建了一个名为nums_list的vector容器,其中存储了一系列的pair<int, int>

vector<pair<int, int>> nums_list;for (int i 0; i < nums.size(); i) {nums_list.emplace_back(i, nums[i]);}这段代码创建了一个名为nums_list的vector容器&#xff0c;其中存储了一系列的pair<int, int>。代码的逻辑如下&#xff1a;1. 创建一个空的…

Linux Debian12使用git将本地项目上传到码云(gitee)远程仓库

一、注册码云gitee账号 这个可以参考其他教程&#xff0c;本文不做介绍。 gitee官网&#xff1a;https://gitee.com/ 二、Linux Debian12安装git 如果Linux系统没有安装git&#xff0c;可以使用下面命令安装git sudo apt install git 三、gitee新建仓库 我这只做测试&…

自动化构建:提高开发流程效率与质量的关键工具

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 引言 自动化构建是现代…

便捷又炸街!Mate 60的智感支付,是如何做到快速又安全的?

扫码支付已成为线下消费的主流付款方式&#xff0c;平时出门&#xff0c;手机一带&#xff0c;钱包拜拜&#xff01; 以微信支付为例&#xff0c;正常线下支付&#xff0c;手机解锁状态下&#xff1a; 第一步&#xff1a;找到微信APP&#xff1b; 第二步&#xff1a;打开右上…

centos7 安装 rabbitmq

一、windows 上下载依赖文件以及安装文件 https://d28dx6y1hfq314.cloudfront.net/828/1033/el/7/package_files/1305009.rpm?t1694767188_8bd28780066a52b94cc2edfb2b7f574333d72318https://d28dx6y1hfq314.cloudfront.net/828/1039/el/7/package_files/1038460.rpm?t16947…

考公顺序步骤

目标&#xff1a;83 判断推理&#xff08;聂佳&#xff09;资料分析&#xff08;花生十三&#xff09;言语理解&#xff08;阿里木江&#xff09;常识判断&#xff08;李m娇&#xff09;数量&#xff08;花生十三&#xff09; 第一阶段 基础课过考点&#xff0c;做好笔记和思…

前端JavaScript Error 类: 异常处理与错误管理

&#x1f3ac; 岸边的风&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 引言 1. Error 类简介 2. Error 类属性 3. Error 类的 API 4. Error 类的应用场景 5. 自定义错误类型 6. 注意…

ChatGPT与日本首相交流核废水事件-精准Prompt...

了解更多请点击&#xff1a;ChatGPT与日本首相交流核废水事件-精准Prompt...https://mp.weixin.qq.com/s?__bizMzg2NDY3NjY5NA&mid2247490070&idx1&snebdc608acd419bb3e71ca46acee04890&chksmce64e42ff9136d39743d16059e2c9509cc799a7b15e8f4d4f71caa25968554…

linux 6中4T磁盘识别并分区格式化挂接

存储端划分4T的LUN后&#xff0c;主机端操作如下 1、主机识别&#xff0c;本例中hba卡的端口是host11和host12 [rootdb1 ~]# echo "- - -" > /sys/class/scsi_host/host11/scan [rootdb1 ~]# echo "- - -" > /sys/class/scsi_host/host12/scan …

C++之unordered_map,unordered_set模拟实现

unordered_map&#xff0c;unordered_set模拟实现 哈希表源代码哈希表模板参数的控制仿函数增加正向迭代器实现*运算符重载->运算符重载运算符重载! 和 运算符重载begin()与end()实现 unordered_set实现unordered_map实现map/set 与 unordered_map/unordered_set对比哈希表…

第31章_瑞萨MCU零基础入门系列教程之WIFI蓝牙模块驱动实验

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写&#xff0c;需要的同学可以在这里获取&#xff1a; https://item.taobao.com/item.htm?id728461040949 配套资料获取&#xff1a;https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总&#xff1a; ht…

pdf文档怎么压缩小一点?文件方法在这里

在日常工作和生活中&#xff0c;我们经常会遇到需要上传或者发送pdf文档的情况。但是&#xff0c;有时候pdf文档的大小超出了限制&#xff0c;需要我们对其进行压缩。那么&#xff0c;如何将pdf文档压缩得更小一点呢&#xff1f;下面&#xff0c;我将介绍三种方法&#xff0c;让…

文本框粘贴时兼容Unix、Mac换行符的方法源码

本篇文章属于《518抽奖软件开发日志》系列文章的一部分。 我在开发《518抽奖软件》&#xff08;www.518cj.net&#xff09;的时候&#xff0c;要在文本框粘贴从别处复制来的名单。发现一个问题&#xff0c;就是一些Unix传过来的多行文本&#xff0c;粘贴后都变成了一行。原来&a…

vue学习之内容渲染

内容渲染 创建 demo2.html,内容如下 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</…

Vue自动生成二维码并可下载二维码

遇到一个需求&#xff0c;需要前端自行生成用户的个人名片分享二维码&#xff0c;并提供二维码下载功能。在网上找到很多解决方案&#xff0c;最终吭哧吭哧做完了&#xff0c;把它整理记录一下&#xff0c;方便后续学习使用&#xff01;嘿嘿O(∩_∩)O~ 这个小东西有以下功能特点…

centos下安装jenkins.war

https://get.jenkins.io/war-stable/ 下载jenkins.war包,(2.164.1 版本支持1.8&#xff0c;其他的都是jdk11),可以安装完成后更新jenkins.war的安装包启动jenkins命令 java -jar jenkins.war --httpPort8010访问http://IP:8010/jenkins &#xff08;密码在/root/.jenkins/secre…

日记:WinUI3打包成.msix

来源网站&#xff1a;WinUI3打包成.msix – WhiteNights Site 2023年5月17日 服了&#xff0c;这玩意怎么能这么难搞。 又是证书又是什么“向开发者获取安装包”&#xff0c;还有什么缺依赖什么什么的鬼问题&#xff0c;真的就只能供本地开发的时候测试用呗。 我觉得这就是一…

Mybatis主键自动生成

Mybatis主键自动生成 在MyBatis中&#xff0c;允许设置名称为“useGeneratedKeys”参数存在3个位置&#xff1a; 在xml映射器中设置useGeneratedKeys参数 在接口映射器中设置useGeneratedKeys参数 在settings元素中设置useGeneratedKeys参数 在不同位置设置的useGenerated…