精华内容
下载资源
问答
  • numpy创建空数组

    2021-05-23 17:20:38
    numpy;设置字符串数组;文件读写

    今天遇到的一个小的问题,关于numpy创建空数组的问题:

    问题描述:
    有一个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
    

    关于nan参考:https://blog.csdn.net/qq_41689620/article/details/88062638

    小结:
    有一个问题还没有解决(红字部分),后面解决了进行补充,如果有知道的小伙伴,麻烦评论区解释一下。

    展开全文
  • 1.创建未初始化的narray数组 格式如下: numpy.empty(shape=, dtype=, order=) 示例: mport numpy as np x = np.empty([3,2], dtype = int) print (x) 结果如下: [[ 6917529027641081856 ...

    从菜鸟教程复制过来的,

    转载地址:https://www.runoob.com/numpy/numpy-array-creation.html

    1.创建未初始化的narray数组

    格式如下:

    numpy.empty(shape=, dtype=, order=)

    示例:

    mport numpy as np 
    x = np.empty([3,2], dtype = int) 
    print (x)
    结果如下:
    [[ 6917529027641081856  5764616291768666155]
     [ 6917529027641081859 -5764598754299804209]
     [          4497473538      844429428932120]]

     

    2.创建0数组,元素全部为0

    格式:numpy.zeros(shap, dtype, order)

    示例:

    import numpy as np
     
    # 默认为浮点数
    x = np.zeros(5) 
    print(x)
     
    # 设置类型为整数
    y = np.zeros((5,), dtype = np.int) 
    print(y)
     
    # 自定义类型
    z = np.zeros((2,2), dtype = [('x', 'i4'), ('y', 'i4')])  
    print(z)

    结果如下:

    [0. 0. 0. 0. 0.]
    [0 0 0 0 0]
    [[(0, 0) (0, 0)]
     [(0, 0) (0, 0)]]

     

    3.创建元素全为1的数组:

    格式:

    numpy.ones(shape, dtype, order)

    示例:

    import numpy as np
     
    # 默认为浮点数
    x = np.ones(5) 
    print(x)
     
    # 自定义类型
    x = np.ones([2,2], dtype = int)
    print(x)

     

    4.从列表或元祖中创建narray数组

    numpy.asarray(a, dtype = None, order = None)

    1.将列表转为数组:

    import numpy as np 
     
    x =  [1,2,3] 
    a = np.array(x)  
    print (a)

    2.将元组转为数组:

    import numpy as np 
     
    x =  (1,2,3) 
    a = np.array(x)  
    print (a)
    结果如下:
    [1  2  3]

     

    5.从数值范围创建数组:

    格式:

    numpy.arange(start, stop, step, dtype)

    示例:

    import numpy as np
     
    x = np.arange(5)  
    print (x)

    结果如下:

    [0  1  2  3  4]

     

    6.创建等差和等比数组

    • .等差数组:

    格式:

    np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

    示例1:

    import numpy as np
    a = np.linspace(1,10,10)
    print(a)

    结果:

    [ 1.  2.  3.  4.  5.  6.  7.  8.  9. 10.]

    示例2:endpoint为False的情况

     

     

    • 等比数组

    格式:

    np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)

    示例1:

    import numpy as np
    # 默认底数是 10
    a = np.logspace(1.0,  2.0, num =  10)  
    print (a)
    

    结果如下;

    [ 10.           12.91549665     16.68100537      21.5443469  27.82559402      
      35.93813664   46.41588834     59.94842503      77.42636827    100.    ]

    示例2:将对数的底数设置为 2 :

    import numpy as np
    a = np.logspace(0,9,10,base=2)
    print (a)
    [  1.   2.   4.   8.  16.  32.  64. 128. 256. 512.]

     

    展开全文
  • 对于java中创建数组的基本格式是: (假如有一个father类) father[] x=new father[5]; 此时虽然使用new开辟了空间,但里面是并没有创建对象的,而是new了五个引用(相当于C语言的指针)它们指向为;此时应该...

    对于java中创建数组的基本格式是:
    (假如有一个father类)

    father[] x=new father[5];

    此时虽然使用new开辟了空间,但里面是并没有创建对象的,而是new了五个引用(相当于C语言的指针)它们指向为空;此时应该继续让指针有所指向;

    public class son {
    public static void main(String[] args) {
    father []x=new father[1];
    if(x[0]==null) {
    System.out.println(“空指针异常” );
    }
    }
    }
    输出:空指针异常

    验证方式

    public class son {
    public static void main(String[] args) {
    father []x=new father[1];
    x[0]=new father();
    if(x[0]==null) {
    System.out.println(“空指针异常” );
    }
    else System.out.println(“解决了”);
    }

    }
    输出:解决了

    当在第一种情况下想用对象数组元素时,会出现空指针异常
    如:

    public class son {
    public static void main(String[] args) {
    father []x=new father[1];
    //x[0]=new father();
    x[0].x=“a”;
    }
    }
    在这里插入图片描述
    public class son {
    public static void main(String[] args) {
    father []x=new father[1];
    x[0]=new father();
    x[0].x=“a”;
    }
    }
    在这里插入图片描述

    展开全文
  • jsoncpp 构造空数组

    千次阅读 2019-07-11 19:37:44
    创建json格式的数据时,为了保证数据为空,字段也要存在的情况,需要构造空数组。类似下面这种形式: {"FurnitureItemObject":[],"FurniturePlaceItemObject":[],"RoomNum":0} 解决方案: 可以用 resize 解决这个...

    创建json格式的数据时,为了保证数据为空,字段也要存在的情况,需要构造空数组。类似下面这种形式:

    {"FurnitureItemObject":[],"FurniturePlaceItemObject":[],"RoomNum":0}
    

    解决方案:
    可以用 resize 解决这个问题:

    Json::Value root;
    root["FurniturePlaceItemObject"].resize(0);
    

    更多参考:

    展开全文
  • 利用append()函数向列表list, np.ndarray尾部追加数据 ...list_var = np.array(list_var) # 将列表转化为ndarray数组格式 直接定义np.ndarray数据,再利用append()存储数据(不常见但高级)
  • matlab如何创建一个指定维度的字符串数组 方法一 因为空格的ASCII码是32,所以先构建一个32的多维矩阵,然后用char()函数转为字符串数组。 A=zeros(10,10); for i=1:10; for j=1:10; A(i,j)=32; end end Astr=...
  • 1:数组的定义格式一般用以下两种: 第一种指定长度: ‘’’’’’’’’’’ 数据类型 [] 数组名称 = new 数据类型[长度] ‘’’’’’’’’’’ 例如: int[] arr = new int[20] 长度为20的int类型的数组 第一种...
  • 5种PHP创建数组的方式

    万次阅读 2017-08-17 16:16:00
    1、使用array()创建数组array()创建数组是我们在PHP开发过程中最常用到的一种方式,准确来说array()是一种结构而不是一个函数。示例1:$number = array(1,3,5,7,9); $color =array("red","blue","green"); $student ...
  • * Object可以是POJO,也可以是Collection或数组。 * 如果对象为Null, 返回"null". * 如果集合为集合, 返回"[]". */ public String toJson(Object object) { try { return this.writeValueAsString...
  • IDL 创建数组

    千次阅读 2017-03-20 17:19:00
    1.赋值创建 ...通过方括号[]赋值创建数组,示例代码如下 IDL> arr=[1,2,3] IDL> help,arr ARR INT = Array[3] IDL> arr=[[1,2,3],[4,5,6]] IDL> help,arr ARR INT = Array[3, 2] ...
  • Swift3创建数组

    千次阅读 2017-04-27 16:03:23
    数组创建 在Swift语言中,数组的类型格式为: Array或[ElementType] 其中Array中的ElementType表示数组的类型,是泛型写法。[ElementType]是一种简写方式。两者表示的功能是一样的,我们更偏向于使用简写形式...
  • 使用new来创建动态数组(1) 如果程序只需要一个值,则可能会声明一个简单变量,因为对于管理一个小型数据对象来说,这样做比使用new和指针更简单,尽管给人留下的印象不那么深刻。通常,对于大型数据(如数组、...
  • 1.2.2 数组类型   ...第3种形式中,即使没有给每个元素赋值,每个元素也都有一个默认值,这个默认值跟数组类型有关,数值类型的值 为0,boolean为false,char为字符。    
  • Java创建数组的几种方式

    千次阅读 2017-03-24 15:49:00
    1、一维数组的声明 ... 附:推荐使用第一种格式,因为第一种格式具有更好的可读性,表示T[]是一种引用类型(数组)。建议不要使用第二种方式 下面是典型的声明数组(整型为例)的方式: // 声明整型数组 int[...
  • /*变量是一种容器,但是一次只能存放一个数据。新的数据来了,老的数据就会被替换掉。...如何创建一个数组?初始化:在内存当中开辟数组空间,并且赋予默认值。数组初始化的方式:1. 动态初始化(指定数组长度)2....
  • java-IDEA工具&数组

    2019-12-04 15:53:00
    0.IDEA开发工具 ​ 参见:IDEA工具安装详解.pdf ...1.2数组定义格式【记忆】 1.2.1第一种 ​ 数据类型[] 数组名 ​ 示例: int[] arr; double[] arr; char[] arr; 1.2.2第二种 ​ 数据类型 数组名[] ​...
  • matlab结构体、数组和单元...创建格式: 结构体名称.字段名称 样例: >> student.name='Alan'; >> student.grade=6; >> student.subject={'Chinese','math','English'}; >> student student
  • 本文地址:http://www.cnblogs.com/veinyin/p/7944072.html 正确格式 1 let json = { 2 '0': 'Waaaa~', 3 ...
  • 创建数组的五种方式

    千次阅读 2017-04-26 22:23:23
    1、使用array()创建数组  array()创建数组是我们在PHP开发过程中最常用到的一种方式,准确来说array()是一种结构而不是一个函数。  示例1:  复制代码代码如下: $number = array(1,3,5,7,9);  ...
  • python数组的使用

    千次阅读 2018-07-07 12:22:38
    python数组的使用 python数组的使用 2010-07-28 17:17 1、Python的数组分三种类型:
  • C++数组初始化

    千次阅读 2018-12-28 11:19:39
    C++数组初始化 定义: int *pia = new int[10]; // array of 10 uninitialized ints ...在自由存储区中创建数组对象是没有名字的,只能通过其地址间接地访问堆中的对象。 注意:C++使用new和delete...
  • print_r range array() [] 快速了解四者的使用 ...如果给出的是 array ,将会按照一定格式显示键和元素。 object 与数组类似。 记住, print_r() 将把数组的指针移到最后边。使用 reset() 可让指针回到...
  • 问题描述:在不使用循环的条件下,如何创建一个长度为100的数组,并且数组的每一个元素是该元素的下标? 结果为: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, ...
  • <script> { //创建数组的两种方式 //1.利用数组字面量 var array1=[1,2,3]; console.log(array1);... //2.利用new创建数组 ...//创建了一个长度为1的空数组 var array3=new Array(1,2);//
  • 虽然javascript语言和java语言有很多的相似之处,但是对于数组(即Array)类型,二者还是有些许的不同点,...java中的数组在初始化的时候都是定长的,即在数组创建的时候需要指定数组的最大长度。而js中的数组的长度是
  • 无图/格式错误请到上方的文章首发页面查看。 Java基础目录如果有不好理解的地方,请评论一下,我举例说明。 数组的特点 数组是相同数据类型元素的集合。即数组只能保存同一种类型的元素。数组中各元素在内存中...
  • 5.12 我用预处理宏#defineNullptr(type)(type*)0帮助创建正确类型的指针。 回顾 59 5.13 这有点奇怪:NULL可以确保是0,但(null)指针却不一定? 5.14 为什么有那么多关于指针的疑惑?为什么这些问题如此...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 225,771
精华内容 90,308
关键字:

创建空数组格式