牛客python题库解题笔记——5小时学python之numpy(2)

一、numpy 字符串

1、数据转置与拼接
某情侣配对信息记录在Nowcoder.csv文件中,名字之间通过逗号间隔,第二列名字之前都有一个空格。
现在要求使用字符串连接将第一列与第二列配对的情侣连接成一个字符串,然后组成numpy数组。

数据集直接从当前目录下的Nowcoder.csv文件中读取。输出变换后的numpy数组。

import numpy as np
data = np.loadtxt('Nowcoder.csv',delimiter=',',dtype=str)
# 转置
data1 = data.T
# 第一列与第二列相拼接
print(np.char.add(data1[0],data1[1]))

2、字母大小写
某个网页的内容记录在Baidu.csv文件中,字符串之间通过逗号间隔。因为网页乱码,表格中的大小写字母混乱,将其修改为所有单词只有句子首字母大写。

数据集直接从当前目录下的Baidu.csv文件中读取。
输出修改后的numpy一维数组。

import numpy as np
data = np.loadtxt('Spider.csv',delimiter=',',dtype=str)
# 按行展开
data1 = data.flatten(order='C')
# 首字母大写输出
print(np.char.capitalize(data1))

二、numpy 统计

1、数据统计
程序员的平均工资记录在Salary.csv文件中,数字之间通过逗号间隔,其中不同列表示不同工作(开发、算法、测试)的程序员平均工资,不同行表示不同地区程序员的平均工资。
找出各个地区程序员的最高平均工资以及不同工作中最高平均工资与最低平均工资之差。
数据集直接从当前目录下的Salary.csv文件中读取。直接输出查询结果的一维numpy数组。

import numpy as np
data = np.loadtxt('Salary.csv',delimiter=',',dtype=float)
print(np.max(data,axis=1))
print(np.ptp(data,axis=0))

2、平均值
某部分程序员的平均工资记录在Salary.csv文件中,数字之间通过逗号间隔,其中不同列表示不同工作内容(开发、算法、测试)的程序员平均工资,不同行表示不同地区程序员的平均工资。
找出不同工作内容平均工资的中位数,以及不同地区工资的算术平均值。
数据集直接从当前目录下的Salary.csv文件中读取。直接输出查询结果的一维numpy数组,算术平均值四舍五入最多保留1位小数。

import numpy as np # 导入模块
salary = np.genfromtxt("Salary.csv", delimiter=",", dtype=float) # 读取文件
print(np.median(salary, axis=0)) # 求行的中位数输出
print(np.round(np.mean(salary, axis=1), decimals=1)) # 求列平均值输出

3、排序
部分店铺一段时间内的销售额记录在Shop.csv文件中,字段之间通过逗号间隔,它只包括了一列店铺名和一列销售额。请你按照销售额对数据进行降序排名。
数据集直接从当前目录下的Shop.csv文件中读取。直接输出降序排名的结果,记录在一维numpy数组中。

import numpy as np
#创建新类型
dt = np.dtype([('name','S10'),('money',float)])
#读取文件转化为np数组
data = np.loadtxt('Shop.csv',delimiter=',',dtype=dt)
#依照'money'排序
data1 = np.sort(data, order='money') 
#逆序输出
print(data1[::-1])

4、筛选
部分店铺一段时间内的销售额记录在Shop.csv文件中,字段之间通过逗号间隔,它只包括了一列店铺名和一列销售额。
假设这段时间内销售额达到百万级别的可以被视作优秀店铺,请从这些数据中筛选出优秀店铺的名字,排序按照原有的顺序。

数据集直接从当前目录下的Shop.csv文件中读取。直接输出筛选的名字的结果,记录在一维numpy数组中。

import numpy as np
#创建新类型
dt = np.dtype([('name','S10'),('money',float)])
#读取文件转化为np数组
data = np.loadtxt('Shop.csv',delimiter=',',dtype=dt)
a = np.where(data['money']>=1000000)
print(data['name'][a])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Turbo正则

如果对您有用请我喝杯咖啡吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值