浅谈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 相关文章推荐
Linux下编译安装MySQL-Python教程
Feb 02 Python
python从入门到精通(DAY 2)
Dec 20 Python
python 3调用百度OCR API实现剪贴板文字识别
Sep 04 Python
python2.7和NLTK安装详细教程
Sep 19 Python
Python访问MongoDB,并且转换成Dataframe的方法
Oct 15 Python
老生常谈python中的重载
Nov 11 Python
使用python 打开文件并做匹配处理的实例
Jan 02 Python
numpy.where() 用法详解
May 27 Python
python SocketServer源码深入解读
Sep 17 Python
pandas read_excel()和to_excel()函数解析
Sep 19 Python
如何获取Python简单for循环索引
Nov 21 Python
python数字图像处理之图像的批量处理
Jun 28 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/09/23 PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
2014/04/24 PHP
PHP简单实现DES加密解密的方法
2016/07/12 PHP
Thinkphp集成抖音SDK的实现方法
2020/04/28 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
用javascript实现画板的代码
2007/09/05 Javascript
javascript 面向对象编程基础:封装
2009/08/21 Javascript
使用JavaScript检测Firefox浏览器是否启用了Firebug的代码
2010/12/28 Javascript
5个最佳的Javascript日期处理类库分享
2012/04/15 Javascript
JavaScript中实现最高效的数组乱序方法
2014/10/11 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
javascript cookie用法基础教程(概念,设置,读取及删除)
2016/09/20 Javascript
原生JS封装_new函数实现new关键字的功能
2018/08/12 Javascript
使用xampp将angular项目运行在web服务器的教程
2019/09/16 Javascript
Layer+Echarts构建弹出层折线图的方法
2019/09/25 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
2019/10/25 Javascript
[53:36]Liquid vs VP Supermajor决赛 BO 第三场 6.10
2018/07/05 DOTA
基于Python中numpy数组的合并实例讲解
2018/04/04 Python
在python中实现强制关闭线程的示例
2019/01/22 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
python 递归相关知识总结
2021/03/03 Python
英国第一的购买便宜玩具和游戏的在线购物网站:Bargain Max
2018/01/24 全球购物
电子邮箱格式怎么写
2014/01/12 职场文书
大二法英学生职业生涯规划范文
2014/02/27 职场文书
低碳环保口号
2014/06/12 职场文书
2013年最新自荐信范文
2014/06/23 职场文书
交通事故委托书范本精选
2014/10/04 职场文书
玩手机检讨书1000字
2014/10/20 职场文书
保险公司2016开门红口号集锦
2015/12/24 职场文书
《别在吃苦的年纪选择安逸》读后感3篇
2019/11/30 职场文书
教你用eclipse连接mysql数据库
2021/04/22 MySQL
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript
Redis高可用集群redis-cluster详解
2022/03/20 Redis
2022微信温控新功能上线
2022/05/09 数码科技