浅谈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 相关文章推荐
Python统计列表中的重复项出现的次数的方法
Aug 18 Python
django之常用命令详解
Jun 30 Python
Python 使用requests模块发送GET和POST请求的实现代码
Sep 21 Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
Aug 30 Python
python获取中文字符串长度的方法
Nov 14 Python
python获取微信企业号打卡数据并生成windows计划任务
Apr 30 Python
python用win32gui遍历窗口并设置窗口位置的方法
Jul 26 Python
pygame实现俄罗斯方块游戏(对战篇1)
Oct 29 Python
python 实现兔子生兔子示例
Nov 21 Python
python Paramiko使用示例
Sep 21 Python
史上最详细的Python打包成exe文件教程
Jan 17 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的优点与缺点
2013/04/11 PHP
php常用的url处理函数总结
2014/11/19 PHP
Laravel框架实现的记录SQL日志功能示例
2018/06/19 PHP
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
JavaScript 设计模式之组合模式解析
2010/04/09 Javascript
深入分析js中的constructor和prototype
2012/04/07 Javascript
JS打开层/关闭层/移动层动画效果的实例代码
2013/05/11 Javascript
jquery实现聚光灯效果的方法
2015/02/06 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
javascript数组遍历的方法实例分析
2016/09/13 Javascript
解析微信JS-SDK配置授权,实现分享接口
2016/12/09 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
详解easyui基于 layui.laydate日期扩展组件
2018/07/18 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
tensorflow训练中出现nan问题的解决
2018/02/10 Python
python正向最大匹配分词和逆向最大匹配分词的实例
2018/11/14 Python
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
2019/05/21 Python
NumPy中的维度Axis详解
2019/11/26 Python
PyCharm2019.3永久激活破解详细图文教程,亲测可用(不定期更新)
2020/10/29 Python
美国第一香水网站:Perfume.com
2017/01/23 全球购物
应用化学专业职业生涯规划书
2013/12/31 职场文书
公务员培训自我鉴定
2014/02/01 职场文书
绘画专业自荐信范文
2014/02/23 职场文书
2014年毕业演讲稿范文
2014/05/13 职场文书
软件工程毕业生自荐信
2014/07/04 职场文书
学校安全教育月活动总结
2014/07/07 职场文书
小学教师师德师风自我剖析材料
2014/09/29 职场文书
拿破仑传读书笔记
2015/07/01 职场文书
小学大队长竞选稿
2015/11/20 职场文书
某某幼儿园的教育教学管理调研分析报告
2019/11/29 职场文书
mysql数据库入门第一步之创建表
2021/05/14 MySQL
Java新手教程之ArrayList的基本使用
2021/06/20 Java/Android
Java 实现限流器处理Rest接口请求详解流程
2021/11/02 Java/Android
javascript的var与let,const之间的区别详解
2022/02/18 Javascript
从原生JavaScript到React深入理解
2022/07/23 Javascript