当前位置: 首页 > news >正文

NumPy学习第九课:字符串相关函数

前言

各位有没有注意到,NumPy从第八课开始其实基本上都是讲的是NumPy的函数,而且其实就是各种函数的调用,因为NumPy是一个很强大的函数库,这对我们以后再处理项目中遇到的问题时会有很大的帮助。我们将常用的函数进行一个列举,知道在什么地方使用,怎么使用就行。

字符串函数库

函数名称描述
add()对两个数组的逐个字符串元素进行连接
multiply()返回按元素多重连接后的字符串
center()居中字符串
capitalize()将字符串第一个字母转换为大写
title()将字符串的每个单词的第一个字母转换为大写
lower()数组元素转换为小写
upper()数组元素转换为大写
split()指定分隔符对字符串进行分割,并返回数组列表
splitlines()返回元素中的行列表,以换行符分割
strip()移除元素开头或者结尾处的特定字符
join()通过指定分隔符来连接数组中的元素
replace()使用新字符串替换字符串中的所有子字符串

使用方式

1、add()函数

看到add()这个函数,我们从字面意思就能理解出来,即使‘相加’的意思。

调用格式: numpy.char.add([‘字符串1’], [‘字符串2’])

示例代码:

import numpy as np# np.char.add()函数
a = '我的'
b = '世界'
print('将a和b通过add函数连接成一个新的值')
print(np.char.add([a], [b]))# 输出结果
# 将a和吧通过add函数连接成一个新的值
# ['我的世界']
2、 multiply()函数

multiply翻译成中文其实就是‘乘以,重复的’,就是执行多次。

** 调用格式:** numpy.char.multiply(‘字符串’,长度)

示例代码:

import numpy as npx = '时光机'print(np.char.multiply(x+' ', 5))# 输出结果
# 时光机 时光机 时光机 时光机 时光机

python中还有一个写法和这个比较相似

示例代码

p = '时光机1 'print(p * 5)# 输出结果
# 时光机1 时光机1 时光机1 时光机1 时光机1

虽然两个返回的结果是一样,但是,它们两个可不是相同的类型呦,我们调用type()看看它们都返回的什么类型的

在这里插入图片描述

np.char.multiply()返回的是numpy数组,而Python写法返回的是字符串,不要混用两个是不一样的。

3、 center()函数

center()函数是一个居中函数。

调用格式:
np.char.center(‘字符串’ , 长度, ‘填充字符’)
这个比较简单,直接展示示例代码

示例代码

import numpy as npx = '我居中了'
print(np.char.center(x, 30, '#'))# 输出结果
# #############我居中了#############
4、capitalize()函数

调用格式:
np.char.capitalize()
这个就是将字符串的首字母变成大写

示例代码:

x = 'woshinitie'
print(np.char.capitalize(x))
# 输出结果
# Woshinitie
5、title()函数

调用格式: numpy.char.title() 函数将字符串的每个单词的第一个字母转换为大写。

示例代码:

x = 'wo de shi jie wo zuo zhu'
print(np.char.title(x))# 输出结果
# Wo De Shi Jie Wo Zuo Zhu
6、lower()函数

调用格式: numpy.char.lower() 将每个元素字母都变成小写的。

示例代码:

x = 'FEI  JI DA ZHAN'
print(np.char.lower(x))# 输出结果
# fei  ji da zhan
7、upper()函数

调用格式: numpy.char.upper() 这个是和;lower()函数相反的函数,是将元素字母全部变成大写。

示例代码:

x = 'wo shi yi ge ai dou'
print(np.char.upper(x))# 输出结果
# WO SHI YI GE AI DOU
8、split()函数

调用格式: numpy.char.split() 分隔符函数,将字符串根据提供的字符进行分割,如果不提供分割字符的话,函数默认空格为字符串的分隔符。

示例代码:

x = 'wo shi yi ge ai dou'
print(np.char.split(x))# 输出结果
# ['wo', 'shi', 'yi', 'ge', 'ai', 'dou']

下面这个比较特殊,既有分隔符,也有空格,那么会怎么进行分割呢?如果提供了分隔符,那么会把后面看成一个整体的字符串进行分割。

x = 'wo.shi.yi.ge ai dou'
print(np.char.split(x, sep='.'))# 输出结果
# ['wo', 'shi', 'yi', 'ge ai dou']
9、splitlines()函数

调用格式: numpy.char.splitlines() 这个函数比split()函数更高一级,可以使用换行符进行字符串的分隔,我们目前接触的比较多的换行符大概就是 \n , \r , \r\n

示例代码:

x = 'wo.shi\nni da ye'
print(np.char.splitlines(x))# 输出结果
# ['wo.shi', 'ni da ye']

如果我们这个字符串中没有分隔符,再次调用splitlines()函数的话,会输出什么呢?看代码

x = 'wo.shi ni da ye'
print(np.char.splitlines(x))# 输出结果
# ['wo.shi ni da ye']
10、strip()函数

调用格式: numpy.char.strip(‘字符串’,‘要移除的字符’)
这个函数就是移除字符串的开头和结尾的需要移除的字符,感觉这个函数比较鸡肋。目前在学习过程中还是用的比较少的,但是存在即是合理的,我们也进行一下测试

示例代码:

x = 'wo.shi ni da ye'
print(np.char.strip(x,'w'))# 输出结果
# o.shi ni da ye
11、join()函数

调用格式: numpy.char.join(‘字符串’,‘分隔符’)就是通过特殊字符,将字符串或者数组,通过特殊字符连接在一起。

我们先看一下普通的字符串连接

在这里插入图片描述

示例代码:

x = 'Kobe Bryant'
print(np.char.join("*", x))# 输出结果
# K*o*b*e* *B*r*y*a*n*t

再来看看数组是如何调用的吧

x = ['james', 'Harden']
print(np.char.join(['~', '$'], x))# 输出结果
# ['j~a~m~e~s' 'H$a$r$d$e$n']

我们也可以给他们共同指定一个元素的。

x = ['james', 'Harden']
print(np.char.join('~', x))# 输出结果
# ['j~a~m~e~s' 'H~a~r~d~e~n']

示例代码:

12、replace()函数

调用格式: numpy.char.replace(‘字符串’,‘需要替换的字符’,‘替换字符’)这个很简单,就是把字符替换成自己想要的字符

示例代码:

x = ['james', 'Harden']
print(np.char.replace(x, 'a', 'T'))# 输出结果
# ['jTmes' 'HTrden']

我们在调用这个函数的时候,是有一个count参数的,这个参数是可选择,就是如果给定了可选参数“count”,则仅第一个计数替换出现次数

在这里插入图片描述

我们试试给count参数赋值看看输出结果

x1 = np.char.replace('This is a python article python ', 'python', 'Numpy-Python', count = 1)
print(x1)
# 输出结果
# This is a Numpy-Python article python

本节课程主要就是函数的一个调用到此结束,很简单,但是还是得进行实操练习才能更加熟练。

本文提供的内容仅用于个人学习、研究,如有相关权利人的合法权利,请及时通知作者,予以删除!

相关文章:

NumPy学习第九课:字符串相关函数

前言 各位有没有注意到,NumPy从第八课开始其实基本上都是讲的是NumPy的函数,而且其实就是各种函数的调用,因为NumPy是一个很强大的函数库,这对我们以后再处理项目中遇到的问题时会有很大的帮助。我们将常用的函数进行一个列举&am…...

卷积神经网络(CNNs)在处理光谱特征的序列属性时表现不佳

卷积神经网络(CNNs)在处理光谱签名的序列属性时表现不佳,主要是由于其固有网络架构的局限性。具体原因如下: 局部感受野(Local Receptive Field): CNN 的核心操作是卷积,它利用局部感…...

【IC】MCU的Tick和晶振频率

Tick 是指 MCU 内部时钟的一个周期,通常表示为一个固定的时间间隔。每个 tick 代表一个时间单位,通常以毫秒(ms)或微秒(μs)为单位。Tick 通常由 MCU 的定时器或计时器生成,作为系统时钟的一部分…...

从0到1学习node.js(npm)

文章目录 一、NPM的生产环境与开发环境二、全局安装三、npm安装指定版本的包四、删除包 五、用npm发布一个包六、修改和删除npm包1、修改2、删除 一、NPM的生产环境与开发环境 类型命令补充生产依赖npm i -S uniq-S 等效于 --save -S是默认选项npm i -save uniq包的信息保存在…...

【STM32 Blue Pill编程实例】-OLED显示DS18B20传感器数据

OLED显示DS18B20传感器数据 文章目录 OLED显示DS18B20传感器数据1、DS18B20介绍2、硬件准备及接线3、模块配置3.1 定时器配置3.2 DS18B20传感器配置3.3 OLED的I2C接口配置4、代码实现在本文中,我们将介绍如何将 DS18B20 温度传感器与 STM32 Blue Pill 开发板连接,并使用 HAL …...

STM32 从0开始系统学习3 启动流程

目录 写在前面 速通:做了什么: 分析I:分析2011年的startup文件所作 分析II:分析2017年的startup文件所作 Helps 2011 2017 Reference 写在前面 请各位看官看本篇笔记的时候首先了解一下计算机体系架构,了解基本…...

交换机:端口安全与访问控制指南

为了实现端口安全和访问控制,交换机通常通过以下几种机制和配置来保护网络,防止未经授权的访问和恶意攻击。 01-端口安全 定义及功能 端口安全功能允许管理员限制每个交换机端口可以学习的MAC地址数量。 通过绑定特定的MAC地址到交换机的某一端口上&a…...

【C++ | 数据结构】八大常用排序算法详解

1. 排序的稳定性 排序是我们生活中经常会面对的问题,小朋友站队的时候会按照从矮到高的顺序排列;老师查看上课出勤情况时,会按照学生的学号点名;高考录取时,会按照成绩总分降序依次录取等等。那么对于排序它是如何定义…...

Oracle 第7章:数据完整性约束

在Oracle数据库中,数据完整性是指确保存储在数据库中的数据的正确性和一致性。为了实现这一点,Oracle提供了多种机制来维护数据完整性,包括主键(Primary Key)、外键(Foreign Key)和唯一性约束&a…...

【核心】静态/动态全覆盖路径规划相关技术研究

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言一、明确覆盖式路径的目标二、静态/动态全覆盖路径规划相关技术研究(1)静态全覆盖路径规划方法一:波前WaveFront 覆盖算法方法二:图形学映射算…...

Java 实现集成 Google 邮箱第三方登录实践

文章目录 前言前期准备配置客户端 ID 和重定向 URL配置 OAuth 权限请求页面 登录流程前端演示代码后端演示代码 总结个人简介 前言 Google OAuth 2.0 是其中一种常见的第三方登录方式,广泛应用于各类网站和应用程序。通过 Google OAuth 2.0,用户可以使用…...

人人都在学的智能体(AI Agent),带你轻松入门!

一、智能体初认知 AI 智能体(英文:AI Agent)究竟是个啥 先讲个故事 想象一下,你有一个特别能干的虚拟助手,我们叫他小明。小明不是普通人,他是一个智能体,就像一个超级版的 Siri 或者小爱同学&…...

如何在Windows环境下开启Kibana的非localhost访问

Kibana是一个开源的分析和可视化平台,用于探索和可视化Elasticsearch数据。默认情况下,Kibana仅允许在本地访问,但通过一些简单的配置更改,你可以允许远程访问。在本文中,我们将介绍如何在Windows环境下开启Kibana的非…...

蓝桥杯 单片机 DS1302和DS18B20

DS1302 时钟 时钟试题 常作为实验室考核内容 控制三个引脚 P17 时钟 P23输入 P13复位 其他已经配置好 寄存器原理 定位地址 0x80地址 固定格式 0x57 5*107*1 57 小时写入格式 不同 首位区分 A上午 P下午 0为24小时制 1为12小时制 写入8小时 0x87 //1000 7 十二小时制 7…...

前端css-媒体查询@media以及常见使用例子

媒体查询(media)介绍 媒体查询(media)是 CSS 中用来针对不同的设备特性(如屏幕尺寸、分辨率等)应用不同样式的一种技术。通过媒体查询,可以使页面在不同设备上呈现不同的布局,实现响…...

centos系统防火墙SELinux设置指令

SELinux(Security-Enhanced Linux)的配置可以通过一系列步骤和命令来完成。以下是一些基本的配置SELinux的方法和步骤: 一、查看SELinux状态 首先,你需要查看SELinux的当前状态。可以使用以下命令: getenforce 该命…...

记录如何在RK3588板子上跑通paddle的OCR模型

官网文档地址 rknn_zoo RKNPU2_SDK RKNN Model Zoo 一、PC电脑是Ubuntu22.04系统中完成环境搭建(板子是20.04) 安装模型转换环境 ​conda create -n rknn2 python3.10 conda activate rknn2 安装Ubuntu依赖包 su…...

通过AWS Bedrock探索 Claude 的虚拟桌面魔力:让 AI 代替你动手完成任务!

前言 大家好,昨夜Anthropic 发布了更新。现在 Claude 3.5 Sonnet(V2) 和 Claude 3.5 Haiku,以及名为 computer use 的新功能已经作为公开测试版发布了。 Introducing computer use, a new Claude 3.5 Sonnet, and Claude 3.5 Ha…...

Java面向对象编程高阶(一)

Java面向对象编程高阶(一) 一、关键字static1、static修饰属性2、静态变量与实例变量的对比3、static修饰方法4、什么时候将属性声明为静态的?5、什么时候将属性声明为静态的?6、代码演示 一、关键字static static用来修饰的结构…...

JavaScript 中 let 和 var 的区别

JavaScript 中 let 和 var 的区别 在 JavaScript 中,let 和 var 都是用来声明变量的关键字,但它们在作用域、提升(hoisting)和重新赋值方面存在显著差异。理解这些差异对于编写高效和无bug的JavaScript代码至关重要。 作用域 v…...

python打卡day49

知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

线程同步:确保多线程程序的安全与高效!

全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...

生成 Git SSH 证书

🔑 1. ​​生成 SSH 密钥对​​ 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​: -t rsa&#x…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则&#xf…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...