浅谈Python numpy创建空数组的问题


Posted in Python onMay 25, 2021

一、问题描述:

有一个shape为(308, 2)的二维数组,以及单独的一个数字,需要保存到csv文件中,这个单独的数字让其保存到第3列第一行的位置。

二、具体的实现:

首先要想把一个(308, 2)的二维数组和一个数字给拼接起来,直接拼接没办法实现,因为行数和列数都不同的两个ndarry是无法拼接的(此处按照目前我学的理解,是无法直接拼接的,如果可以的话,麻烦评论一下)。

然后我首先想到的解决方法就是先建一个(308,1)的二维数组,然后令这个二维数组的第一个元素设置成那个数字,然后进行拼接,保存。

为使数据可以显示完全,以仅以3行数据为例:

>>> a = np.ones((3,2))
>>> b = 0.2
>>> _b = np.empty((3,1))
>>> _b[0, 0] = b
>>> c = np.c_[a, _b]
>>> print(c)
[[1.00000000e+000 1.00000000e+000 2.00000000e-001]
 [1.00000000e+000 1.00000000e+000 2.12199579e-313]
 [1.00000000e+000 1.00000000e+000 2.54639495e-313]]
>>>

但是这样,我把结果保存到文件时,第3列的除第一行,其他的行是有数据的,我不想让它显示数据。
也就是empty这个函数只是创建一个未初始化的数组,实际上里面的数值都是垃圾值。

那么如何去实现视觉上没有数据呢,其实利用空的字符串就可以了

所以就通过np.ones设置dtype为str,此时生成的是元素都为空字符串的数组,(具体的原因还不清楚),然后此时若直接设置第一行的元素为某个值,是不行的,会自动变为'0‘,只有在拼接之后,然后再给它赋值才可以,这个地方我不是很理解,但是结果是正确的。

三、完整代码:

y_true = np.ones((3, 1), dtype=np.int)
y_pred = np.ones((3, 1), dtype=np.int)
y = np.c_[y_true, y_pred]

accuracy = np.zeros(shape=(y_true.shape[0], 1), dtype=np.str)

# 此时若设置accuracy[0, 0] = '0.89',最终accuracy[0, 0]存的是'0',具体原因还不清楚

res = np.c_[y, accuracy]  # 先拼接起来
res[0, 2] = '0.89'  # 然后再设置就可以了

res = pd.DataFrame(res, columns=['y_true', 'y_pred', 'accuracy'])
res.to_csv('1.csv')  # 保存到文件中

浅谈Python numpy创建空数组的问题

从文件中读取的时候,直接读出来,空白的地方被赋值为nan

a = pd.read_csv('1.csv', usecols=(1, 2, 3))
a = a.values
print(a, type(a), a.dtype)

浅谈Python numpy创建空数组的问题

关于np.nan需要注意的地方如下:

  • np.nan不是空对象。
  • 对列表中的nan进行操作时不能用"==np.nan"来判断。只能用np.isnan()来操作。
  • np.nan的数据类型是float。
import numpy as np
 
np.nan == np.nan
Out[3]: False
 
aa = np.array([1,2,3,np.nan,np.nan,4,5,np.nan])
aa
Out[5]: array([  1.,   2.,   3.,  nan,  nan,   4.,   5.,  nan])
 
aa[aa==np.nan] = 100  #错误方式
aa
Out[7]: array([  1.,   2.,   3.,  nan,  nan,   4.,   5.,  nan])
 
aa[np.isnan(aa)] = 100  #对nan操作的正确方式
aa
Out[9]: array([   1.,    2.,    3.,  100.,  100.,    4.,    5.,  100.])
 
type(np.nan)
Out[10]: float

关于参考:https://www.3water.com/article/212249.htm

到此这篇关于浅谈Python numpy创建空数组的问题的文章就介绍到这了,更多相关numpy创建空数组内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
在Django的视图中使用form对象的方法
Jul 18 Python
python 实现删除文件或文件夹实例详解
Dec 04 Python
Python科学画图代码分享
Nov 29 Python
基于Python List的赋值方法
Jun 23 Python
详解Django+Uwsgi+Nginx的生产环境部署
Jun 25 Python
使用Python写一个量化股票提醒系统
Aug 22 Python
python实现字符串加密成纯数字
Mar 19 Python
简单了解Django应用app及分布式路由
Jul 24 Python
Python使用Opencv实现图像特征检测与匹配的方法
Oct 30 Python
PyTorch笔记之scatter()函数的使用
Feb 12 Python
python实现三种随机请求头方式
Jan 05 Python
python爬取网页版QQ空间,生成各类图表
Jun 02 Python
python实现语音常用度量方法的代码详解
python基础学习之生成器与文件系统知识总结
May 25 #Python
Python实战之实现简易的学生选课系统
May 25 #Python
python 如何用terminal输入参数
May 25 #Python
python 命令行传参方法总结
May 25 #Python
基于flask实现五子棋小游戏
May 25 #Python
浅谈Python中的函数(def)及参数传递操作
May 25 #Python
You might like
PHP父类调用子类方法的代码例子
2014/04/09 PHP
createElement与createDocumentFragment的点点区别小结
2011/12/19 Javascript
jQuery插件zepto.js简单实现tab切换
2015/06/16 Javascript
jQuery EasyUI封装简化操作
2016/09/18 Javascript
详解vuejs之v-for列表渲染
2017/06/22 Javascript
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
2017/07/19 Javascript
详解js的视频和音频采集
2018/08/09 Javascript
python列表操作实例
2015/01/14 Python
Python中条件判断语句的简单使用方法
2015/08/21 Python
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
python二分查找算法的递归实现方法
2016/05/12 Python
python 专题九 Mysql数据库编程基础知识
2017/03/16 Python
Python实现的简单计算器功能详解
2018/08/25 Python
Python图像滤波处理操作示例【基于ImageFilter类】
2019/01/03 Python
python使用Plotly绘图工具绘制散点图、线形图
2019/04/02 Python
Python对ElasticSearch获取数据及操作
2019/04/24 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
如何在mac版pycharm选择python版本
2020/07/21 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
HTML5上传文件显示进度的实现代码
2012/08/30 HTML / CSS
百度软件工程师职位
2013/02/14 面试题
生物技术专业研究生自荐信
2013/09/22 职场文书
五一家具促销方案
2014/01/10 职场文书
老公给老婆的道歉信
2014/01/10 职场文书
学习考察心得体会
2014/09/04 职场文书
2014班子“三严三实”对照检查材料思想汇报
2014/09/18 职场文书
党的群众路线教育实践活动对照检查材料
2014/09/22 职场文书
2014年辅导员工作总结
2014/11/18 职场文书
中学生逃课检讨书
2015/02/17 职场文书
如何写好闭幕词
2019/04/02 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
解决pycharm下载库时出现Failed to install package的问题
2021/09/04 Python
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
2022/04/29 Servers
Springboot集成kafka高级应用实战分享
2022/08/14 Java/Android