Python学习-Numpy-1

学习参考链接:

Numpy的介绍和安装和性能对比_哔哩哔哩_bilibili

Numpy相对List的优势和特点

1、Numpy的数据结构是array数组

2、相较List的性能更好,并且包含大量的便捷的函数,以及数组中元数据的信息

3、array的数据类型必须一致,为int或者float,因此性能更高

1、创建数组

import numpy as np#创建一维数组
x=np.array([1,2,3,4,5,6])#创建二维数组
y=np.array([[1,2,3],[4,5,6]
])
print("x=",x)
print("y=",y)

x= [1 2 3 4 5 6]
y= [[1 2 3]
 [4 5 6]] 


2、array的属性

import numpy as np#创建二维数组
y=np.array([[1,2,3],[4,5,6]
])# 数组形状
print("y.shape",y.shape)# 数组维度
print("y.ndim",y.ndim)# 所有数据的数目
print("y.size",y.size)# 数据的类型
print("y.dtype",y.dtype)

y.shape (2, 3)
y.ndim 2
y.size 6
y.dtype int32


3、创建array的便捷函数

 3.1 np.arange

import numpy as np#使用arrange创建数组序列
#arange(start,stop,step,dtype=None),左闭右开x=np.arange(12)
y=np.arange(2,10,2)
print("x=",x)
print("y=",y)

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

 3.2 np.ones

import numpy as np#使用ones创建全为1的数组序列
#ones(shape,dtype=None,order='C')x=np.ones(12)
y=np.ones((2,3))
print("x=",x)
print("y=",y)

x= [1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
y= [[1. 1. 1.]
 [1. 1. 1.]]

 3.3 np.ones_like

import numpy as np#使用ones_like创建全为0的形状相同的数组序列
#ones_like(x,dtype=None)
x=np.arange(12).reshape(3,4)y=np.ones_like(x)
print("x=",x)
print("y=",y)

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

 3.4 np.empty

empty的数据是未初始化的数据,里面的值是随机值不能直接使用

import numpy as np#使用empty创建全为0的数组序列
#empty(shape,dtype=None,order='C')
x=np.empty(10)
y=np.empty((2,5))print("x=",x)
print("y=",y)

x= [6.23042070e-307 1.89146896e-307 1.37961302e-306 6.23053614e-307
 1.60218627e-306 6.23061763e-307 6.23059386e-307 6.23058028e-307
 8.90100844e-307 2.39277352e-203]
y= [[-5.74929044e-186 -3.41963150e+202  8.38577217e-253 -4.80176796e+207
  -8.30082508e+049]
 [ 5.69602577e-219  2.08987787e-290  5.64286538e+290  2.34477072e+222
  -1.62584672e+000]]

Process finished with exit code 0
 

 3.5 np.empty_like

import numpy as np#使用empty_like创建全为1的形状相同的数组序列
#empty_like(x,dtype=None)
x=np.arange(12).reshape(3,4)y=np.empty_like(x)
print("x=",x)
print("y=",y)

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

 3.6 np.full

import numpy as np#使用full创建指定值的数组序列
#full(shape,fill_vaule,dtype=None,order='C')
x=np.full(5,10)
y=np.full((2,5),10)print("x=",x)
print("y=",y)

x= [10 10 10 10 10]
y= [[10 10 10 10 10]
 [10 10 10 10 10]]

 3.7 np.full_like

import numpy as np#使用full_like创建填充指定值的形状相同的数组序列
#full_like(x,fill_vaule,dtype=None)
x=np.arange(12).reshape(3,4)y=np.full_like(x,666)
print("x=",x)
print("y=",y)

x= [[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
y= [[666 666 666 666]
 [666 666 666 666]
 [666 666 666 666]]

 3.8 np.random.randn

import numpy as np#使用rand创建随机数组序列
#randn(d0,d1,d2...)
x=np.random.randn(4)
y=np.random.randn(4,3)
z=np.random.randn(4,3,2)print("x=",x)
print("y=",y)
print("z=",z)

x= [-0.6814137   2.58645822 -0.32107098 -1.16734569]
y= [[-0.12104364 -0.60353561 -0.70747402]
 [-0.78172178  0.56876222 -0.89172026]
 [-0.35139011 -0.53920652  0.66813472]
 [ 0.6570334  -0.59396372 -2.36066397]]
z= [[[ 0.18886269  0.40312599]
  [-0.15651529 -0.28551847]
  [ 0.41414574  1.76023497]]

 [[-0.79363865  0.62441301]
  [ 2.09764425  2.08595285]
  [-0.77915632  0.8259647 ]]

 [[ 0.31214999  1.54711407]
  [ 0.90644711  0.76644429]
  [-1.59445626  1.29589803]]

 [[ 0.97082177 -1.52600754]
  [ 1.4742554   0.07321613]
  [-0.1599697   0.19982069]]]

 4、array用于操作及函数

4.1 shape 

import numpy as npx=np.arange(12).reshape(3,4)
print(x.shape)

 (3, 4)

 4.2 数组+1

与list的区别在于是对数组内的所有的数字同时操作,而list对所有的数字同时操作则需要用for循环实现。 

import numpy as np#array+1是对数组内的所有的元素进行加1
x=np.arange(12).reshape(3,4)
y=x+1
print("x=",x)
print("y=",y)

x= [[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
y= [[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]]

  4.3 数组*3

import numpy as np#array*3是对数组内的所有的元素进行*3
x=np.arange(12).reshape(3,4)
y=x*3
print("x=",x)
print("y=",y)

x= [[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
y= [[ 0  3  6  9]
 [12 15 18 21]
 [24 27 30 33]]

  4.4 sin(数组)

import numpy as np#np.sin(array)是对数组内的所有的元素进行sin
x=np.arange(12).reshape(3,4)
y=np.sin(x)
print("x=",x)
print("y=",y)

 x= [[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
y= [[ 0.          0.84147098  0.90929743  0.14112001]
 [-0.7568025  -0.95892427 -0.2794155   0.6569866 ]
 [ 0.98935825  0.41211849 -0.54402111 -0.99999021]]

 4.5 array间的加减操作

import numpy as np#np.sin(array)是对数组内的所有的元素进行sin
x=np.arange(12).reshape(3,4)
y=np.random.randint(1,10,(3,4))print("x=",x)
print("y=",y)z=x+y
w=x-y
print("z=",z)
print("w=",w)

x= [[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
y= [[3 6 2 1]
 [8 2 7 1]
 [6 7 5 9]]
z= [[ 3  7  4  4]
 [12  7 13  8]
 [14 16 15 20]]
w= [[-3 -5  0  2]
 [-4  3 -1  6]
 [ 2  2  5  2]]

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

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

相关文章

实验名称:TCP 连接管理

目录 实验目的: 实验原理: 实验步骤: 1) 启动WireShark,设置抓包状态 2) 访问指定服务器 ,通过Wireshark抓取通信数据报文 3) 分析TCP连接建立的三次握手和连接释放的四次握手过程 原始数据记录: 实…

微信小程序生命周期揭秘:从启动到消亡的全过程剖析【附代码】

微信小程序生命周期揭秘:从启动到消亡的全过程剖析 一、小程序生命周期概览核心生命周期函数 二、深入理解生命周期回调2.1 onLoad: 首次亮相的准备2.2 onShow: 重登舞台的瞬间2.3 onReady: 舞台就绪,静待表演2.4 onHide & onUnload: 谨慎离场&#…

【数据结构陈越版笔记】第1章 概述【习题】

1. 碎碎念 我这答案做的可能不对,如果不对,欢迎大家指出错误 2. 答案 1.1 判断正误 (1) N ( log N ) 2 N(\text{log}N)^{2} N(logN)2是 O ( N 2 ) O(N^{2}) O(N2)的。 (2) N 2 ( log N ) 2 N^{2}(\text…

蓝桥杯备战12.阶乘

P5739 【深基7.例7】计算阶乘 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 递归 #include<bits/stdc.h> #define endl \n #define int long long using namespace std; const int N 2e710,M 1e310; double a[N]; int jie(int n) {if(n1)return 1;else return n*ji…

HTML/CSS3

1.CSS CSS的作用在于在HTML的基础上(决定网页的内容和结构)对网页进行排版布局 对网页中的元素提供样式 使得网页显得更加精美CSS全称是cascading style sheets 即层叠样式表CSS样式的书写格式&#xff1a;样式名: 样式值 例如&#xff1a;color: red建议:之后进行空格 CSS样式…

AXI Interconnect IP核的连接模式简介

AXI Interconnect IP核内部包含一个 Crossbar IP核&#xff0c;用于在 Slave Interfaces&#xff08;SI&#xff09;和 Master Interfaces&#xff08;MI&#xff09;之间路由传输。在连接 SI 或 MI 到 Crossbar 的每条路径上&#xff0c;可以选择性地添加一系列 AXI Infrastru…

2024年安全员C证报名条件

安全员c证&#xff0c;又称建筑施工企业三类人员c证&#xff0c;持证者一般是建筑施工企业专职安全生产管理的专业人员。安全员c证报名条件是: 1、职业道德良好&#xff0c;身体健康&#xff0c;年龄不超过60周岁(法定代表人除外); 2、具有中专及以上文化程度或初级及以上技术…

WMS系统批次管理概述

为了提高仓库运作效率&#xff0c;降低库存成本&#xff0c;越来越多的企业开始引入WMS仓库管理系统&#xff0c;WMS系统批次管理作为其核心功能之一&#xff0c;对于实现精细化、智能化的仓储管理具有重要意义。 二、WMS系统批次管理概述 WMS系统批次管理是指通过对仓库中的货…

rust调用SQLite实例

rusqlite库介绍 Rusqlite是一个用Rust编写的SQLite库&#xff0c;它提供了对SQLite数据库的操作功能。Rusqlite的设计目标是提供一个简洁易用的API&#xff0c;以便于Rust程序员能够方便地访问和操作SQLite数据库。 Rusqlite的主要特点包括&#xff1a; 遵循Rust的类型系统和…

SQL_hive的连续开窗函数

SQL三种排序&#xff08;开窗&#xff09;第几名/前几名/topN 1三种排序&#xff08;开窗&#xff09;第几名/前几名/topN思路 4种排序开窗函数 1三种排序&#xff08;开窗&#xff09;第几名/前几名/topN 求每个学生成绩第二高的科目-排序思路 t2表&#xff1a;对每个学生 的…

基于Python的web漏洞挖掘扫描技术的实现与研究【附源码,文档】

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…

Vue3 项目

创建 Vue3 项目的步骤如下&#xff1a; 安装 Node.js Vue3 需要依赖 Node.js 环境&#xff0c;因此需要先安装 Node.js。可以从官网下载 Node.js 的安装包并安装&#xff0c;也可以使用包管理器安装&#xff0c;例如在 Ubuntu 上可以使用以下命令安装&#xff1a; sudo apt-get…

C语言笔记13

字符数组与字符串常量区别 #include <stdio.h> int main() {char str1[] "hello bit.";char str2[] "hello bit.";char *str3 "hello bit.";char *str4 "hello bit.";if(str1 str2)printf("str1 and str2 are same\n…

【生信技能树】拿到表达矩阵之后,如何使用ggplot2绘图系统绘制箱线图?

拿到表达矩阵之后&#xff0c;如何使用ggplot2绘图系统绘制箱线图&#xff1f; 目录 预备知识 绘制箱线图示例 预备知识 1.pivot_longer函数 pivot_longer 是tidyr包中的一个函数&#xff0c;用于将数据框&#xff08;data frame&#xff09;从宽格式转换为长格式。在宽格…

一文掌握gRPC

文章目录 1. gRPC简介2. Http2.0协议3. 序列化-Protobuf4. gRPC开发实战环境搭建5. gRPC的四种通信方式&#xff08;重点&#xff09;6. gRPC的代理方式7. SprintBoot整合gRPC 1. gRPC简介 gRPC是由google开源的高性能的RPC框架。它是由google的Stubby这样一个内部的RPC框架演…

reactJs动态执行js代码

参考了这篇文章 js——new Function 一个可以随时动态执行字符串js代码的神器 因为一些原因&#xff0c;想要js代码块配置在数据库中返回&#xff0c;例如时间&#xff0c;我需要用到第三方库 moment。然后动态的得到startDate 和 endDate 配置在数据库中的startDate值是$mom…

Java日志总结

开发中&#xff0c;日志记录是不可或缺的一部分&#xff0c;应用日志的记录主要用于&#xff1a;记录操作轨迹数据、监控系统运行情况、系统故障定位问题&#xff0c;日志的重要性不言而喻&#xff0c;想要快速定位问题&#xff0c;日志分析是个重要的手段&#xff0c;Java也提…

JAVA 集合(单列集合)

集合框架 1.集合的特点 a.只能存储引用数据类型的数据 b.长度可变 c.集合中有大量的方法,方便我们操作 2.分类: a.单列集合:一个元素就一个组成部分: list.add(“张三”) b.双列集合:一个元素有两部分构成: key 和 value map.put(“涛哥”,“金莲”) -> key,value叫做键值…

Docker各版本的新特性

Docker 作为流行的容器化平台&#xff0c;会定期发布新版本以引入新特性、改进和修复。根据提供的搜索结果&#xff0c;以下是一些 Docker 版本及其新特性的概览&#xff1a; Docker Desktop v4.12 Containerd 的集成&#xff1a;更深入集成 containerd 以管理容器生命周期&a…

锁和MVCC如何实现mysql的隔离级别

概述 MVCC解决读的隔离性&#xff0c;加锁解决写的隔离性。 读未提交 读未提交&#xff0c;更新数据大概率使用的是独享锁吧。 读已提交 在 Read Committed&#xff08;读已提交&#xff09;隔离级别下&#xff0c;每次执行读操作时都会生成一个新的 read view。这是因为在读…