浅谈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 相关文章推荐
将图片文件嵌入到wxpython代码中的实现方法
Aug 11 Python
深入解读Python解析XML的几种方式
Feb 16 Python
Python3中的真除和Floor除法用法分析
Mar 16 Python
详解supervisor使用教程
Nov 21 Python
python处理自动化任务之同时批量修改word里面的内容的方法
Aug 23 Python
python 使用pdfminer3k 读取PDF文档的例子
Aug 27 Python
python之array赋值技巧分享
Nov 28 Python
python tkinter 设置窗口大小不可缩放实例
Mar 04 Python
使用Python构造hive insert语句说明
Jun 06 Python
Django执行源生mysql语句实现过程解析
Nov 12 Python
Python办公自动化之Excel(中)
May 24 Python
全网非常详细的pytest配置文件
Jul 15 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 date与gmdate的获取日期的区别
2010/02/08 PHP
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
解决phpcms更换javascript的幻灯片代码调用图片问题
2014/12/26 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
JavaScript 10件让人费解的事情
2010/02/15 Javascript
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
jQuery EasyUI API 中文文档 - Dialog对话框
2011/11/15 Javascript
JavaScript自执行闭包的小例子
2013/06/29 Javascript
js取值中form.all和不加all的区别介绍
2014/01/20 Javascript
Shell脚本实现Linux系统和进程资源监控
2015/03/05 Javascript
详解JavaScript中localStorage使用要点
2016/01/13 Javascript
JavaScript中的对象继承关系
2016/08/01 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
2016/08/02 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
2016/09/29 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
2017/01/06 Javascript
JS实现复制内容到剪贴板功能
2017/02/05 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
Js面试算法详解
2018/04/08 Javascript
详解Vue打包优化之code spliting
2018/04/09 Javascript
解决vue项目获取dom元素宽高总是不准确问题
2020/07/29 Javascript
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
2020/09/10 Javascript
vue添加自定义右键菜单的完整实例
2020/12/08 Vue.js
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
深入了解Vue动态组件和异步组件
2021/01/26 Vue.js
解读Python编程中的命名空间与作用域
2015/10/16 Python
利用Python如何批量修改数据库执行Sql文件
2018/07/29 Python
对python3新增的byte类型详解
2018/12/04 Python
python函数声明和调用定义及原理详解
2019/12/02 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
2020/01/15 Python
详解Python多线程下的list
2020/07/03 Python
瑞典领先的汽车零部件网上零售商:bildelaronline24.se
2017/01/12 全球购物
施工安全生产承诺书
2014/05/23 职场文书
民族学专业大学生职业规划范文:清晰未来的构想
2014/09/20 职场文书
公民代理授权委托书
2014/09/24 职场文书
村主任群众路线个人对照检查材料
2014/09/26 职场文书
安全教育观后感
2015/06/17 职场文书