Numpy入门

文章目录

    • 1. Ndarray的5种重要属性
    • 2. Ndarray的7种创建方法
    • 3. 类型转换和等比/差数列
    • 4. Numpy的8种内置方法
    • 5. Numpy 数学运算


主要内容

  1. Ndarray的5种重要属性
    • nd.ndim Ndarray的维度
    • nd.shape Ndarray的行列数
    • nd.size Ndarray的元素数
    • nd.dtype Ndarray元素类型
    • nd.itemsize Ndarray元素大小
  2. Ndarray的7种创建方法
    • np.arange()
    • np.zeros()
    • np.ones()
    • np.empty()
    • np.mat()
      • mat(‘1,2;3,4’)
      • mat(‘1 2’3 4’)
    • np.matrix([])
    • np.random.xxx()
      • rand()
      • randint()
      • uniform()
  3. 数据类型转换和等比等差数列
    • dtype表明元素的数据类型
    • astype(np.float64/np.int32)
  4. Numpy内置方法
    • np.ceil() 向上取整
    • np.floor() 向下取整
    • np.rint() 四舍五入
    • np.innan() 是否为空
    • np.multiply() 元素相乘
    • np.divide() 元素相除
    • np.abs() 绝对值
    • np.where(condition,x,y) 三元运算符 x if condition else y
  5. Numpy数学运算
    • 矩阵加法,矩阵元素对位相加,或者矩阵所有元素加上同一个值
    • 矩阵减法,矩阵元素对位相减,或者矩阵所有元素减去同一个值
    • dot() 矩阵点乘,采用矩阵的乘法
    • multiply() 对位相乘

Talk is cheap show me the code. —— Linus Torvalds

1. Ndarray的5种重要属性

'''
本代码用于展示Ndarray的5种重要属性
20230925 by weidada
'''
import numpy as np# 创建一个Ndarray对象
nd = np.array([[1, 2], [3, 4]])print('nd的类型为:', type(nd))
print('1. nd的维度:',nd.ndim)
print('2. nd的行列数:',nd.shape)
print('3. nd的元素个数:',nd.size)
print('4. nd的元素大小:',nd.itemsize)
print('5. nd的元素类型:',nd.dtype)'''
代码输出:
nd的类型为: <class 'numpy.ndarray'>
1. nd的维度: 2
2. nd的行列数: (2, 2)
3. nd的元素个数: 4
4. nd的元素大小: 4
5. nd的元素类型: int32
'''

2. Ndarray的7种创建方法

import numpy as npnd1 = np.array([1, 2, 3, 4], dtype=np.float64)
print('nd1:', nd1)
print('nd1元素类型:', nd1.dtype)# zeros/ones/empty
nd2 = np.zeros(shape=(2, 3), dtype=np.float64)
print('nd2:', nd2)nd3 = np.ones(shape=(3, 4), dtype=np.int32)
print('nd3:', nd3)# 创建一个三行四列的数组,并且不对内存中的数据做任何初始化操作
nd4 = np.empty(shape=(3, 4))
print('nd4:', nd4)# mat/matrixnd5 = np.mat('1,2;3,4')
print('nd5:', nd5)nd5_2 = np.mat('1 2;3 4')
print('nd5_2:', nd5_2)nd6 = np.matrix([[1, 2], [3, 4]], dtype=np.float64)
print('nd6:', nd6)# random# 创建一个三行四列的随机数组,数组的元素位于[0,1)区间中
nd7 = np.random.rand(3, 4)
print('nd7:', nd7)# 从[1,10)区间中取出随机整数创建一个两行散列的数组
nd7_2 = np.random.randint(1, 10, size=(2, 3))
print('nd7_2:', nd7_2)# 从[-3,3)区间中取出实数,创建一个三行四列的数组
nd7_3 = np.random.uniform(-3, 3, size=(3, 4))
print('nd7_3:', nd7_3)'''
代码输出:
nd1: [1. 2. 3. 4.]
nd1元素类型: float64
nd2: [[0. 0. 0.][0. 0. 0.]]
nd3: [[1 1 1 1][1 1 1 1][1 1 1 1]]
nd4: [[0. 0. 1. 1.][1. 1. 1. 1.][1. 0. 0. 1.]]
nd5: [[1 2][3 4]]
nd5_2: [[1 2][3 4]]
nd6: [[1. 2.][3. 4.]]
nd7: [[0.40850696 0.13023629 0.65993262 0.44094543][0.39357602 0.49633451 0.65386546 0.08969138][0.21696212 0.75754505 0.6421084  0.86626301]]
nd7_2: [[4 6 1][3 6 7]]
nd7_3: [[ 1.40482872 -2.84858258 -2.95598728 -0.31476042][ 2.82887046  2.71789577 -0.2911986   1.55282051][ 1.01122184 -1.10465388 -2.52051117  2.43563793]]
'''

3. 类型转换和等比/差数列

import numpy as np# 使用astype转换数组元素的类型
nd = np.array([1, 2, 3, 4, 5])
print('nd的元素类型:', nd.dtype)nd1 = nd.astype(np.float64)
print('nd1的元素类型:', nd1.dtype)# 使用logspace创建等比数列# [2^0,2^3]区间中取出4个元素,组成等比数列
logd = np.logspace(0, 3, 4, base=2, dtype=np.int32)
print(logd)# [0,10]区间取出11个元素组成等差数列
lind = np.linspace(0, 10, endpoint=True, num=11)
print(lind)
'''
nd的元素类型: int32
nd1的元素类型: float64
[1 2 4 8]
[ 0.  1.  2.  3.  4.  5.  6.  7.  8.  9. 10.]
'''

4. Numpy的8种内置方法

import numpy as npdata = np.random.uniform(-3, 3, size=(2, 3))
print(data)print("向上取整:", np.ceil(data))
print("向下取整:", np.floor(data))
print("四舍五入:", np.rint(data))
print("是否为空:", np.isnan(data))
print("对位乘法:", np.multiply(data, data))
print("对位除法:", np.divide(data, data))
print("绝对值:", np.abs(data))
print("三目运算:", np.where(data > 0, 1, -1))'''
代码输出:(注意,每次输出结果并不相同,因为有random)
[[-1.3457752   1.57889323  1.62845167][ 2.52058874  0.24765177 -1.19728704]]
向上取整: [[-1.  2.  2.][ 3.  1. -1.]]
向下取整: [[-2.  1.  1.][ 2.  0. -2.]]
四舍五入: [[-1.  2.  2.][ 3.  0. -1.]]
是否为空: [[False False False][False False False]]
对位乘法: [[1.8111109  2.49290383 2.65185485][6.35336761 0.0613314  1.43349626]]
对位除法: [[1. 1. 1.][1. 1. 1.]]
绝对值: [[1.3457752  1.57889323 1.62845167][2.52058874 0.24765177 1.19728704]]
三目运算: [[-1  1  1][ 1  1 -1]]
'''

5. Numpy 数学运算

import numpy as npx = np.random.randint(1, 10, size=(2, 3))
y = np.random.randint(1, 10, size=(3, 2))
print('x:\n', x)
print('y:\n', y)# 对位相加
print('x + x:\n', x + x)# 对位相减
print('x - x\n', x - x)# 所有元素+/-1
print('x + 1:\n', x + 1)
print('x - 1:\n', x - 1)# 矩阵乘法
print('x dot y:\n', x.dot(y))# 数组元素对位相乘
print('x multiply x:\n', np.multiply(x, x))'''
代码输出:
x:[[9 7 3][4 4 9]]
y:[[3 6][7 5][1 8]]
x + x:[[18 14  6][ 8  8 18]]
x - x[[0 0 0][0 0 0]]
x + 1:[[10  8  4][ 5  5 10]]
x - 1:[[8 6 2][3 3 8]]
x dot y:[[ 79 113][ 49 116]]
x multiply x:[[81 49  9][16 16 81]]
'''

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

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

相关文章

变量、常量以及与其他语言的差异 - Go语言从入门到实战

知识点 源码文件以_test结尾&#xff1a;xxx_test.go测试方法名以Test开头&#xff1a;func TestXXX(t *testing.T){…} 利用单元测试来写代码段&#xff0c;保存之后会自动运行程序返回结果&#xff0c;可以快速实践得到反馈。 编写测试程序 接下来练习一下&#xff0c;怎…

Unity下tga和png格式图片打包成AB包大小和加载速度测试

测试素材 测试素材&#xff0c;一张tga格式&#xff0c;一张png格式&#xff0c;他们的图像尺寸一样都是8K图。 两张图在AssetBundles里显示 Tga格式的图明显大很多&#xff0c;我们打包成ab包看看。 在PC 打包后看&#xff0c;明显大小一样&#xff0c;我们进行ab包加载&am…

传统订货方式和网上企业APP订货方式的差别|网站搭建|小程序开发

传统订货方式和网上企业APP订货方式的差别|网站搭建|小程序开发 1、管货品&#xff1a;实时关注热销和滞销商品的库存订货系统&#xff1a;采购单一键生成入库单&#xff0c;便捷的实现从采购到仓库到销售一体化的进销存管理。 传统模式&#xff1a;进销存管理难&#xff1a;…

机器学习,深度学习

一 、Numpy 1.1 安装numpy 2.2 Numpy操作数组 jupyter扩展插件&#xff08;用于显示目录&#xff09; 1、pip install jupyter_contrib_nbextensions -i https://pypi.tuna.tsinghua.edu.cn/simple 2、pip install jupyter_nbextensions_configurator -i https://pypi.tuna.t…

destoon 调用第三方api接口

调用企查查企业工商信息接口为例&#xff1a; 在 \api\extend.func.php 文件下 注意&#xff1a;有注释内容可能接口无法访问 function select_list($k){$query_data array(key>,keyword>$k);$url "https://api.qichacha.com/ECIV4/GetBasicDetailsByName?&q…

RocketMQ —消费者负载均衡

消费者从 Apache RocketMQ 获取消息消费时&#xff0c;通过消费者负载均衡策略&#xff0c;可将主题内的消息分配给指定消费者分组中的多个消费者共同分担&#xff0c;提高消费并发能力和消费者的水平扩展能力。本文介绍 Apache RocketMQ 消费者的负载均衡策略。 背景信息​ …

MacOS上的Pip和Python升级指南

在MacOS系统上&#xff0c;保持Pip和Python版本的最新状态对于顺利进行Python开发至关重要。通过升级Pip和Python&#xff0c;你可以享受到最新的功能、修复的bug以及提升的开发效率。本文将为你提供在MacOS上升级Pip和Python的详细指南&#xff0c;助你打造更强大的开发环境。…

春招秋招,大学生求职容易遇到哪些问题?

每到毕业季就有大批大学生从校园出来&#xff0c;他们怀抱梦想&#xff0c;希望能做出一番成绩。但现实总归是残酷的&#xff0c;有些人找不到工作&#xff0c;有一些人频繁跳槽&#xff0c;也有一些人最终找到的工作与自己的专业没有一点关系&#xff0c;迷茫好几年才找到方向…

20个提升效率的JS简写技巧,告别屎山!

JavaScript 中有很多简写技巧&#xff0c;可以缩短代码长度、减少冗余&#xff0c;并且提高代码的可读性和可维护性。本文将介绍 20 个提升效率的 JS 简写技巧&#xff0c;助你告别屎山&#xff0c;轻松编写优雅的代码&#xff01; 移除数组假值 可以使用 filter() 结合 Bool…

密歇根大学发布3款生成式AI产品,并应用在教学、日常工作!

密歇根日报消息&#xff0c;美国顶级公立大学-密歇根大学宣布推出3款生成式AI产品UM-GPT、UM-GPT开发包和UM-Maizey&#xff0c;并将其应用在教学、日常工作、学术研究等领域。微软也参与了此次产品研发&#xff0c;并提供技术支持。 密歇根大学将为安娜堡分校、弗林特分校、迪…

测试C#图像文本识别模块Tesseract的基本用法

微信公众号“dotNET跨平台”的文章《c#实现图片文体提取》&#xff08;参考文献3&#xff09;介绍了C#图像文本识别模块Tesseract&#xff0c;后者是tesseract-ocr&#xff08;参考文献2&#xff09; 的C#封装版本&#xff0c;目前版本为5.2&#xff0c;关于Tesseract的详细介绍…

Vue以及整合ElementUI

初始化vue项目 #vue 脚手架使用 webpack 模板初始化一个 appname 项目 vue init webpack appname启动 vue 项目 #项目的 package.json 中有 scripts&#xff0c;代表我们能运行的命令 npm start npm run dev #启动项目 npm run build&#xff1a;将项目打包项目结构 运行流程…

一个关于IntroductionAdvisor的bug

一个关于IntroductionAdvisor的bug public class TestMain {public static void main(String[] args) {// 1. 准备被代理的目标对象People peo new People();// 2. 准备代理工厂ProxyFactory pf new ProxyFactory();// 3. 准备introduction advice,advice 持有需要额外添加的…

影刀自动化采集底层逻辑

hello,大家好&#xff0c;这里是【玩数据的诡途】 接上回 <我的影刀故事> 今天给大家介绍一下整个采集的底层逻辑&#xff0c;包括业务流程自动化也是基于这一套基础逻辑进行展开的&#xff0c;顺便带大家熟悉一下影刀&#xff0c;既然叫影刀系列了&#xff0c;那后续一些…

13基于PCA的人脸识别,程序已调通,可将自己的数据替换进行识别,得到识别准确率结果,MATLAB平台。

基于PCA的人脸识别&#xff0c;程序已调通&#xff0c;可将自己的数据替换进行识别&#xff0c;得到识别准确率结果&#xff0c;MATLAB平台。

xorm数据库操作之Join、Union

golang的数据库操作xorm使用起来非常方便&#xff0c;不用再自己写SQl语句&#xff0c;而且xorm自己给我们做了SQL防注入等操作&#xff0c;用起来既方便又安全。此次文章我不会记录xorm的基本操作&#xff0c;我值记录一些特殊用法问题&#xff0c;包括动态创建表单、基于xorm…

CSS详细基础(二)文本样式

插播一条CSS的工作原理&#xff1a; CSS是一种定义样式结构如字体、颜色、位置等的语言&#xff0c;被用于描述网页上的信息格式化和显示的方式。CSS样式可以直接存储于HTML网页或者单独的样式单文件。无论哪一种方式&#xff0c;样式单包含将样式应用到指定类型的元素的规则。…

oracle 递归

1&#xff09;此方法&#xff0c;父亲state 9999&#xff0c;儿子state ! 9999&#xff0c;儿子能查询出来 select * from T_ORGANIZATION ot where ot.state!9999 start with ot.id 7 connect by prior ot.id ot.ORG_PARENTID order by ot.id asc 2&#xff09;此方法…

【node】发送邮件及附件简要使用说明

Nodemailer是一个用于Node.js应用程序的模块&#xff0c;可以轻松发送电子邮件。该项目始于2010年&#xff0c;当时没有合理的选项来发送电子邮件消息&#xff0c;如今它是大多数Node.js用户默认选择的解决方案。 一、环境配置 安装模块&#xff1a;nodemailer npm i nodema…

从代码操作层面解释什么是“面相对象编程”?

起因&#xff1a; 今天开了一个小会&#xff0c;会上朋友给我们说了一个事&#xff0c;Java项目上他开发一个小功能 用了很多代码&#xff0c;项目经理发现代码太多&#xff0c;说要优化一下&#xff0c;然后亲自帮同事优化&#xff0c;结果是查库的代码少了至少10条sql&#x…