浅谈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 15 Python
浅谈Python的文件类型
May 30 Python
python中异常捕获方法详解
Mar 03 Python
Python中循环引用(import)失败的解决方法
Apr 22 Python
Python读写docx文件的方法
May 08 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
May 18 Python
python numpy和list查询其中某个数的个数及定位方法
Jun 27 Python
详解Python最长公共子串和最长公共子序列的实现
Jul 07 Python
python PrettyTable模块的安装与简单应用
Jan 11 Python
python RC4加密操作示例【测试可用】
Sep 26 Python
django 数据库 get_or_create函数返回值是tuple的问题
May 15 Python
教你怎么用Python操作MySql数据库
May 31 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
Laravel中注册Facades的步骤详解
2016/03/16 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
json跟xml的对比分析
2008/06/10 Javascript
Document 对象的常用方法
2009/07/31 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
jquery中防刷IP流量软件影响统计的一点对策
2011/07/10 Javascript
js 代码优化点滴记录
2012/02/19 Javascript
jquery 事件冒泡的介绍以及如何阻止事件冒泡
2012/12/25 Javascript
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
2012/12/27 Javascript
js动态添加删除,后台取数据(示例代码)
2013/11/25 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
2016/02/14 Javascript
原生javascript实现解析XML文档与字符串
2016/03/01 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
bootstrap datepicker插件默认英文修改为中文
2017/07/28 Javascript
vue实现商品加减计算总价的实例代码
2018/08/12 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
vue中uni-app 实现小程序登录注册功能
2019/10/12 Javascript
[44:15]国士无双DOTA2 6.82版本详解(上)
2014/09/28 DOTA
Python 元组(Tuple)操作详解
2014/03/11 Python
python pandas消除空值和空格以及 Nan数据替换方法
2018/10/30 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
Python实现加密接口测试方法步骤详解
2020/06/05 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
2020/09/21 Python
馥绿德雅美国官方网站:Rene Furterer头皮护理专家
2019/05/01 全球购物
金鑫耀Java笔试题
2014/09/06 面试题
留学自荐信的技巧
2013/10/17 职场文书
工程招投标邀请书
2014/01/30 职场文书
四风存在的原因分析
2014/02/11 职场文书
大学新生军训自我鉴定
2014/09/18 职场文书
董事会决议范本
2015/07/01 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书
2016年机关单位节能宣传周活动总结
2016/04/05 职场文书
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
2021/04/13 Python
微软Win11有哪些隐藏功能? windows11多个功能汇总
2021/11/21 数码科技