当前位置:   article > 正文

牛客python题库解题笔记——5小时学python之numpy_牛客网读取数组python

牛客网读取数组python

一、numpy数组

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

import numpy as np
a = np.genfromtxt('Coder.csv',delimiter=',')
print(a)
print(a.dtype())
  • 1
  • 2
  • 3
  • 4

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])
  • 1
  • 2
  • 3
  • 4

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))])
  • 1
  • 2
  • 3
  • 4
  • 5

二、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)
  • 1
  • 2
  • 3
  • 4
  • 5

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))
  • 1
  • 2
  • 3
  • 4

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))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

三、numpy数组变换

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

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

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/204781
推荐阅读
相关标签
  

闽ICP备14008679号