Numpy下dtype中的str_与string_的区别

2023-11-08

        为什么写这篇文章呢,其实简单来说就是因为搜不到别人有这类的文章呗,所以自己研究了一下。

        在我的某个程序中需要将数据保存成numpy数组,数组中每个元素又必须是字符串的格式

但是当你输入dtype=numpy.str的时候,你会发现又三个相近的数据类型可选,那就是str、str_和string_了,如下图

str自然不用说,看后面就知道,builtins也就说明了这个str其实是python的内建数据类型,跟numpy数组一点关系都没有。

        所以我们将目光锁定到后面为dtype的str_和string_上,我是比较懒的人,不喜欢去翻文档,也比较注重实践检验真理,所以在这里我会通过一系列的对比来区别开这两个数据类型。


对比1,数据本身打印效果:

运行结果为:

对比2,打印数组中的元素的数据类型

运行结果:

不难看出, arr1中的每个元素,貌似均为字符串对象,而arr2中的每个元素,都是btytes对象

而arr1中的元素究竟是不是字符串呢?

对比3,字符串拼接

运行结果:

这里我只运行了arr1中元素跟字符串的拼接结果,并且是成功的,充分说明了str_就应该是dtype中真正对应python里str的那种类型,而arr2就没必要去测试了,因为结果只会是报错。不信你看, 报出来的错误就是长这个样子的。

对比4,占用内存大小对比

运行结果:

可以看到用arr1的占用内存是比arr2要大的。为什么要做这一个比较呢,因为既然用得到numpy数组却又不将里面的元素保存成数字类的数据类型的话,就根本不是考虑计算的而是考虑存储的,那既然考虑存储就一定要考虑占用内存大小这么一个问题。所以有此比较。


        综合来说,我还是会选择str_类型去操作这些数据的,你们呢?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Numpy下dtype中的str_与string_的区别 的相关文章

随机推荐

  • Android:手把手带你了解实用的Android Jetpack

    转自 https blog csdn net carson ho article details 104243841 前言 在2018年 Google I O 大会上发布了一系列辅助Android开发者开发的实用工具集合 Jetpack 今
  • Unity制作简单动画效果

    需求 制作一段门旋转的动画 效果如下 解决办法 1 在Unity中点击Window gt Animation gt Animation 调出Animation面板 如下 2 为了让门的轴心在门边上以便于制作门绕门边旋转的效果 需要先新建一个
  • Rust交叉编译开发环境的搭建

    为嵌入式开发引入新的编程语言 对于嵌入式系统软件和应用软件的开发而言 编程语言的重要性次于整体的软件架构设计的重要性 不过仍有必要谨慎地选择编程语言 因为这涉及开发效率 软件性能 以及团队成员的技术能力 譬如 若整个嵌入式软件的绝大数组件是
  • 蓝桥杯 分数统计---递归

    题目 1500 蓝桥杯 算法提高VIP 分数统计 时间限制 1Sec 内存限制 128MB 提交 1541 解决 727 题目描述 给定一个百分制成绩T 将其划分为如下五个等级之一 90100为A 8089为B 7079为C 6069为D
  • Spring MVC参数的传递与接收

    SpringMVC主要做的就两方面的操作 在Controller接收从jsp传递过来的数据 把Controller的数据传递到jsp页面 将Controller里边的数据传到jsp 其返回值有三种类型 ModelAndView void S
  • Swift3.0学习之CollectionView的简单使用

    1 设置layout let layout UICollectionViewFlowLayout layout itemSize CGSize width 60 height 80 设置item尺寸 layout minimumLineSp
  • Python学习笔记(零)————Python简介及基础

    目录 1 查看 Python 版本 2 脚本文件 3 Python3 简介 4 Python 发展历史 5 Python 特点 6 Python 应用 7 Python环境搭建 1 查看 Python 版本 我们可以在命令窗口 Window
  • Docker入门(安装、换阿里源及配置阿里云镜像加速)

    文章目录 一 Docker 概述 1 1 Docker 为什么出现 1 2 Docker 的历史 1 3 聊聊 Docker 1 4 Docker 能干嘛 二 Docker 安装 2 1 Docker 的基本组成 2 2 安装 Docker
  • warning: array subscript is above array bounds

    问题描述 warning array subscript is above array bounds Warray bounds 数组下标使用越界 需检查数组的使用 下标是否正确 warning pointer targets in pas
  • 网页链接区块链wallet_WAX云钱包解决了区块链的最后难题

    点击蓝字 关注我们 区块链的最后的难题已被解决 我用过很多区块链 dApps 有些很神奇 有些则不然 但是几乎所有这些dApp都是有限制的 因为当新用户上线时 很难和这些应用程序磨合得好 现在登录 dApp 就像用制作复杂的鲁布 戈德堡机械
  • Oracle安装教程及PL/SQL Developer下载安装及使用

    作为按照各种教程安装了5 6次Oracle数据库的人来说 不得不把之前踩过的坑都总结一下 1 首先 请下载Oracle 11g和plsql PL SQL Developer 这里给出百度云网盘下载链接 只需要下载解压就行了 链接 https
  • 数字图像处理之低通滤波器实现原理及方法(Matlab)

    1 傅里叶变换与频域 在之前的文中 我们已经进行过一些基本的图像处理 比如 使用低通滤波可以将图像模糊 也有些许降噪的作用 这些都是在空间域内进行的滤波处理 这个处理主要是依靠卷积来进行计算的 首先 从连续的一维卷积入手 如下所示 将上式进
  • Run-Time Check Failure #0 错误

    使用VS 遇到过一个错误 如下图 文字描述是这样的 Run Time Check Failure 0 The value of ESP was not properly saved across a function call This i
  • 智能优化算法 — 蜣螂优化算法(Dung beetle optimizer,DBO)

    引言 小时候 蜣螂还是比较多见的 还顽皮地将粪球给它弄走 或者给它来点障碍 现在放牛的几乎看不到了 蜣螂没东西可推了 也慢慢从我们的视线中消失了 DBO介绍 2022年11月27日 东华大学沈波教授团队 继麻雀搜索算法 Sparrow Se
  • 关于Lab5 github上传后文件名大小写不变

    遇到的问题 由于checkstyle等工具检查出本地包名不符合规范 修改了其大小写之后 重新上传到github上发现包内类中package后包名已经改变 但是文件夹名并没有改变 尝试解决一 执行git config global core
  • spring boot升级spring cloud注意事项

    项目升级 从springboot转成springcloud 记录一些过程中遇到的问题和坑 一 确定版本和组件选型 版本不兼容会造成很多问题 所以需要根据项目使用的Spring Boot Version确定相关版本 此处使用的是Spring
  • for循环达到指定循环次数

  • AngularJs ngList、ngRepeat、ngModelOptions

    ngList 在文本输入的分隔的字符串和字符串数组间做转换 可以是一个固定的字符串分隔符 默认逗号 或正则表达式 格式 ng list value value 表达式 通过这个值分隔字符串 使用代码 div div
  • HeadFirst 设计模式学习笔记14——MVC分析

    随笔 346 文章 0 评论 14 本文已搬家至 HeadFirst 设计模式学习笔记 13 MVC分析
  • Numpy下dtype中的str_与string_的区别

    为什么写这篇文章呢 其实简单来说就是因为搜不到别人有这类的文章呗 所以自己研究了一下 在我的某个程序中需要将数据保存成numpy数组 数组中每个元素又必须是字符串的格式 但是当你输入dtype numpy str的时候 你会发现又三个相近的