浅谈Python numpy创建空数组的问题
作者:馋学习的身子 发布时间:2022-10-10 07:11:08
目录
一、问题描述:
二、具体的实现:
三、完整代码:
一、问题描述:
有一个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') # 保存到文件中
从文件中读取的时候,直接读出来,空白的地方被赋值为nan
a = pd.read_csv('1.csv', usecols=(1, 2, 3))
a = a.values
print(a, type(a), a.dtype)
关于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.jb51.net/article/212249.htm
来源:https://blog.csdn.net/qq_38048756/article/details/117197697
猜你喜欢
- 类 型描 述EmptyVariable 没有被初始化,它是数字的话,它的值就为0,如果它是字符串,那么它的值就为1N
- 本文实例讲述了Python简单读写Xls格式文档的方法。分享给大家供大家参考,具体如下:1. 模块安装使用pip install命令安装,即
- php5.2新增的json功能是非常受欢迎的,但是经过测试发现, json_encode对中文的处理是有问题的, 1.不能处理GB编码,所有
- 我们在浏览网页的时候偶尔会遇到一些陌生的网页交互行为,通常情况下它们并不会影响你的正常使用,之所以出现情况往往是因为,设计师在设计某个交互方
- 利用numpy和scipy,我们可以很容易根据欧拉角求出旋转矩阵,这里的旋转轴我们你理解成四元数里面的旋转轴 import nu
- 前言嗨,彦祖们,不会过圣诞了还是一个人吧?今天我们来讲一下如何用python来画一个圣诞树,学会就快给那个她发过去吧,我的朋友圈已经让圣诞树
- 1、pd.cut()用于将数据值按照值本身进行分段并排序到 bins 中。参数包含:x, bins, right, include_lowe
- 在SQL Server 2005中,它的另外一个强大的新特点是数据库快照。数据库快照是一个数据库的只读副本,它是数据库所有数据的映射,由快照
- 本文实例为大家分享了python多线程下信号处理程序示例的具体代码,供大家参考,具体内容如下下面是一个网上转载的实现思路,经过验证,发现是可
- MySQL Proxy(MySQL代理)是一个通过MySQL网络协议,提供MySQL服务器与客户端之间连接的应用工具,在基本配置条件下,My
- python操作mongodb数据库# !/usr/bin/env python# -*- coding:utf-8 -*-"&q
- Django开发过程中如果数据库变动过多导致migrations的文件越来越多,管理起来很不方便, 幸运的是Django提供了一种方式可以是
- 本文实例讲述了python实现把二维列表变为一维列表的方法。分享给大家供大家参考,具体如下:c = [[1,2,3], [4,5,6], [
- Matplotlib效果图如下主要使用matplotlib.animation.FuncAnimation,上核心代码,# 定义静态绘图函数
- 如题,本次是要实现点击超链接实现执行js代码,并确认是否删除数据库数据,采用php。首先链接数据库,查询数据库数据:<?php$dbm
- package work;import java.io.BufferedReader;import java.io.IOException;
- BN原理、作用函数参数讲解BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, tr
- 本文实例为大家分享了Python曲线拟合的最小二乘法,供大家参考,具体内容如下模块导入import numpy as npimport ga
- 一、说在前面 需求:有一张长为960,宽为96的图片,需要将其分割成10张96*96的图
- 因为即将开始淘宝的项目,在前端方面必然要深入了解taobao ued规范,规范还是比较全的,只是对taobao.com的编码和字符集的选择有