浅谈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中的元类编程入门指引
Apr 15 Python
python实现的文件同步服务器实例
Jun 02 Python
Python实现各种排序算法的代码示例总结
Dec 11 Python
Python操作csv文件实例详解
Jul 31 Python
老生常谈Python startswith()函数与endswith函数
Sep 08 Python
python3读取excel文件只提取某些行某些列的值方法
Jul 10 Python
Python语法分析之字符串格式化
Jun 13 Python
Python处理session的方法整理
Aug 29 Python
opencv python图像梯度实例详解
Feb 04 Python
python网络编程socket实现服务端、客户端操作详解
Mar 24 Python
简单的Python人脸识别系统
Jul 14 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
Jan 06 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中替换换行符的几种方法小结
2012/10/15 PHP
完美实现wordpress禁止文章修订和自动保存的方法
2014/11/03 PHP
php实现统计目录文件大小的函数
2015/12/25 PHP
CI框架实现cookie登陆的方法详解
2016/05/18 PHP
PHP使用pdo实现事务处理操作示例
2018/09/05 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
Html中JS脚本执行顺序简单举例说明
2010/06/19 Javascript
JS图片定时翻滚效果实现方法
2016/06/21 Javascript
ECMAScript6快速入手攻略
2016/07/18 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
Vue.js系列之项目结构说明(2)
2017/01/03 Javascript
js实现百度搜索提示框
2017/02/05 Javascript
ES6学习之变量的解构赋值
2017/02/12 Javascript
js登录滑动验证的实现(不滑动无法登陆)
2018/01/03 Javascript
Node.js笔记之process模块解读
2018/05/31 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
2019/08/17 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
vue element自定义表单验证请求后端接口验证
2019/12/11 Javascript
Jquery+javascript实现支付网页数字键盘
2020/12/21 jQuery
Python 查找字符在字符串中的位置实例
2018/05/02 Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
2019/08/18 Python
详解使用django-mama-cas快速搭建CAS服务的实现
2019/10/30 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
windows下python安装pip方法详解
2020/02/10 Python
关于win10在tensorflow的安装及在pycharm中运行步骤详解
2020/03/16 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
欧洲品牌瓷器餐具网上商店:Porzellantreff.de
2018/04/04 全球购物
免税水晶:Duty Free Crystal
2019/05/13 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
俄罗斯购买自行车网站:Vamvelosiped
2021/01/29 全球购物
设计师求职信
2014/07/01 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
感谢信模板大全
2015/01/23 职场文书
golang 如何用反射reflect操作结构体
2021/04/28 Golang
关于golang高并发的实现与注意事项说明
2021/05/08 Golang