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

一、numpy数组

1、读取数组与元素类型
所有员工的评分信息被记录在Coder.csv文件中,不同得分之间通过逗号间隔。将文件内容读取为numpy数组,并输出数组的元素的类型。
数据集直接从当前目录下的Coder.csv文件中读取。输出提取后的numpy数组以及数组元素类型。

import numpy as np
a = np.genfromtxt('Coder.csv',delimiter=',')
print(a)
print(a.dtype())

2、切片
不同部门的员工的座位表被记录在Nowcoder.csv文件中,以不同的数字区分不同的部门,数字之间通过逗号间隔。
输出第1列坐了哪些部门的同事,第5行的4~8列坐了哪些部门的同事(行列号从0开始计算)
数据集直接从当前目录下的Nowcoder.csv文件中读取,输出截取后的矩阵片段。

import numpy as np
data = np.genfromtxt('Nowcoder.csv',delimiter=',',dtype=int)
print(data[:,1])
print(data[5,4:9])

3、索引
某学校的迎新方阵人员安排记录在Policy.csv文件中,以不同的数字区分方阵人员,数字之间通过逗号间隔。为了增加方阵的变换,需要选取从右上到左下的所有人员,给他们带上红手套,现在要依次通知这些人,所以选出他们代表的数字组成一个一维numpy。
数据集从当前目录下的Policy.csv文件中读取。(矩阵总共10行10列)
输出选取后的一维numpy。

import numpy as np
df = np.loadtxt("Policy.csv", delimiter=",", dtype=int)
print(df[list(i for i in range(0,10)),list(i for i in range(9,-1,-1))])

# print(df[list(i for i in range(0,10))],[list(i for i in range(9,-1,-1))])

二、numpy数组运算

1、numpy数组运算
现有两个矩阵,第一个记录在matrix1.csv文件中,第二个记录在matrix2.csv文件中,两个矩阵形状不同,请将矩阵相加。第一个矩阵大小为10x10,第二个矩阵大小为1*10。
数据集直接从当前目录下的matrix1.csv和matrix2.csv文件中读取。输出相加后的矩阵。

import numpy as np
arr1=np.genfromtxt('matrix1.csv',delimiter=',',dtype=int)
arr2=np.genfromtxt('matrix2.csv',delimiter=',',dtype=int)
matrx1=arr1+arr2
print(matrx1)

2、数据分析
网站某项工程需要使用多个角度的正弦值,角度值记录在在Nowcoder.csv文件中,数字之间通过逗号间隔。
使用numpy函数将这些角度值批量化转化为正弦值。
其中弧度值 = 角度值 ∗ π/180

数据集直接从当前目录下的Nowcoder.csv文件中读取。输出角度值转换为正弦值后的numpy一维数组,四舍五入最多保留3位小数,即不足三位小数的不用管。

import numpy as np
arr=np.genfromtxt('Nowcoder.csv',delimiter=',',dtype=float)
arr2=np.sin(arr*np.pi/180)
print(np.round(arr2,decimals=3))

3、计算
为了便于快速统一的运算,将需要计算的数据记录在矩阵中,使用numpy统一运算。其中矩阵中的每一列从上到下都可以看成对应的a、b、c、d、e,输出计算结果Numpy数组。
计算公式:
请添加图片描述
数据集直接从当前目录下的Zuoye.csv文件中读取,数字之间通过逗号间隔。输出计算公式后的numpy一维数组,四舍五入最多保留2位小数,即不足2位小数的不用管。
请添加图片描述

#导入模块
import numpy as np
#读取文件
zy = np.genfromtxt('Zuoye.csv',delimiter=',',dtype=float)
#两行相加
ab = np.add(zy[0],zy[1])
#取第三行倒数
c = np.reciprocal(zy[2])
#倒数的幂值
cd = np.power(c,zy[3])
#输出
print(np.round(np.subtract(np.multiply(ab,cd),zy[4]),decimals=2))

三、numpy数组变换

1、修改报表
某个报表数据以矩阵的形式记录在Table.csv文件中,数字之间通过逗号间隔。老板觉得这样的数据排布不好看,希望将矩阵的所有列翻转,然后进行转置。
数据集直接从当前目录下的Table.csv文件中读取,矩阵行列数未知。输出变换后的矩阵。
请添加图片描述

import numpy as np
 
a = np.genfromtxt('Table.csv', delimiter=',', dtype=float)
 
print(np.flip(a, 1).T)

2、变换矩阵
请添加图片描述
请添加图片描述

import numpy as np
a= np.genfromtxt('Matrix.csv',delimiter=',',dtype=int)
b=a.flatten(order='F')
print(b)
c=b.reshape(4,16)
print(c)
d=c.reshape(4,4,4)
print(d)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Turbo正则

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

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

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

打赏作者

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

抵扣说明:

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

余额充值