浅谈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实现拼接多张图片的方法
Dec 01 Python
启动targetcli时遇到错误解决办法
Oct 26 Python
关于Python正则表达式 findall函数问题详解
Mar 22 Python
解决sublime+python3无法输出中文的问题
Dec 12 Python
Python requests模块实例用法
Feb 11 Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
May 03 Python
python 将日期戳(五位数时间)转换为标准时间
Jul 11 Python
Python实现手机号自动判断男女性别(实例解析)
Dec 22 Python
python 伯努利分布详解
Feb 25 Python
解决keras加入lambda层时shape的问题
Jun 11 Python
python Protobuf定义消息类型知识点讲解
Mar 02 Python
PyTorch中的torch.cat简单介绍
Mar 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
Get或Post提交值的非法数据处理
2006/10/09 PHP
PHP 文件上传全攻略
2010/04/28 PHP
php设计模式 Mediator (中介者模式)
2011/06/26 PHP
php实现memcache缓存示例讲解
2013/12/04 PHP
php调用shell的方法
2014/11/05 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
2014/11/29 PHP
PHP SPL标准库之接口(Interface)详解
2015/05/11 PHP
谈谈 PHP7新增功能
2015/12/16 PHP
PHP简单检测网址是否能够正常打开的方法
2016/09/04 PHP
Yii2框架中日志的使用方法分析
2017/05/22 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
在laravel中实现ORM模型使用第二个数据库设置
2019/10/24 PHP
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
举例详解JavaScript中Promise的使用
2015/06/24 Javascript
利用JS实现数字增长
2016/07/28 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
Textarea输入字数限制实例(兼容iOS&安卓)
2017/07/06 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
javascript执行上下文、变量对象实例分析
2020/04/25 Javascript
[01:13]这,就是刀塔
2014/07/16 DOTA
python中字典dict常用操作方法实例总结
2015/04/04 Python
python中range()与xrange()用法分析
2016/09/21 Python
浅谈django中的认证与登录
2016/10/31 Python
Python 从相对路径下import的方法
2018/12/04 Python
Python 安装 virturalenv 虚拟环境的教程详解
2020/02/21 Python
用于ETL的Python数据转换工具详解
2020/07/21 Python
手把手教你用Django执行原生SQL的方法
2021/02/18 Python
HTML5中的强制下载属性download使用实例解析
2016/05/12 HTML / CSS
体验完美剃须:The Art of Shaving
2018/08/06 全球购物
eBay荷兰购物网站:eBay.nl
2020/06/26 全球购物
党员群众路线承诺书
2014/05/20 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
二胎满月酒致辞
2015/07/29 职场文书
2016小学新学期寄语
2015/12/04 职场文书
python实现三次密码验证的示例
2021/04/29 Python
mysql在项目中怎么选事务隔离级别
2021/05/25 MySQL