R入门Day2:数据类型1---向量

R入门Day2:数据类型1---向量,第1张

20200505·Kony·Win10

变量(various) :用于存储值保留的内存位置,变量被分配了R对象,并且R对象的数据类型成为变量的数据类型。

R对象类型(Types of R-objects):

转换数据类型

判断转换 类型转换函数

isnumeric() asnumeric() #数字

ischaracter() ascharacter()#字符

isvector() asvector() #向量

ismatrix() asmatrix() #矩阵

isdataframe() asdataframe() #数据框

isfactor() asfactor() #因子

islogical() aslogical()#逻辑数据

以上每一行的两个函数都是定义相同类型的函数

不是很懂raw

向量 的下标是从1开始的

取某个元素:x[2];(如果X包括名称,注意:x[2]与x[[2]]的区别;

取某中几个:x[c(1,2,0)]

取某个/几个元素,利用-:x[-n]#取除去第n个元素之外的其他元素

sort(); 输出排序后的结果;order();输出排序后的各个向量位置,如下所示:

x[n] 第n个元素

x[-n] 除了第n个元素的x

x[1:n] 前n个元素

x[-(1:n)] 第n+1至最后的元素

x[c(1,4,2) ] 指定元素

x["name"] 名为"name"的元素

x[x > 3] 所有大于3的元素

x[x > 3 & x < 5] 区间(3,5)的元素

x[x %in% c ("a","and","the")] 给定组中的元素

data > 20 是一个表示式,它的返回值是一个有TRUE和FALSE 构成的逻辑向量,最终只选取了TRUE对应的元素,所以data 中大于20的元素被选了出来。

%in%这个 *** 作符只返回逻辑向量TRUE 或者FALSE,而且返回值应该与%in%这个 *** 作符前面的向量程度相等。也就是说它相当于遍历了C里面的一个个元素,判断它们是否在B中出现过,然后返回是或者否即可。

而match(C,B)的结果就很不一样了,它的返回结果同样与前面的向量等长,但是它并非返回逻辑向量,而是遍历了C里面的一个个元素,判断它们是否在B中出现过,如果出现就返回在B中的索引号,如果没有出现,就返回NA。

笔记参考:R语言基础--数据类型之向量 >

区别不大,都是数列结构。

C++不区分基础数据类型,所以vector可以直接作用于int,char这类基础类型vector<int>

Java中Vector必须作用于Object的子类,需要用包装类Vector<Integer>

Java版的功能更全面一些。

1、数组:java arrays的元素个数不能下标越界,从很大程度上保证了java程序的安全性,但创建时必须指定数组的大小,并不能再改变。2、vector:对比于array,当更多的元素被加入进来以至超出其容量时,vector的size会动态增长,而array容量是定死的。同时,vector在删除一些元素后,其所有下标大于被删除元素的元素都依次前移,并获得新下标比原来的小了)。原文地址:>

不行

改了之后也不可以

改了之后只能说他们具有相同的父类,他们本身并没有关系(不过将他们都转换为父类应该可以吧)

要想放进去,他们应该有继承的关系 ,他们的指针可以是父类指向子类也可以是子类指向父类 ,不过用的时候会混乱的

vector<int> a 相当于int a[]

这个认识是极端错误的

int a[]为包含数据为int型的数组,一组int类型的数据存放在内存中连续的空间内,是C++定义的最基本的内置数据类型之一

vector是一个容器,vector<int>表明容器里存储的数据是int型的,是C++的标准库中定义的一个标准模板类

类的定义不仅包含数据,实际上也包含了这个数据上可以执行的 *** 作

比如对于vector,定义了自己的方法,可以遍历、修改vector内的数据

不仅如此,还重载了一系列 *** 作符,包括=

函数传值有两种方式,一种是传值,一种是传引用

void myfun(vector<int> &a=b)

这是传引用的方式,这样这个函数对a的修改就是对调用他的函数中原来数据b的修改

void myfun(vector<int> a=b)

是传值的方式,因为C++中已经定义了vector的= *** 作

这样这个函数就会构造一个新的vector,调用= *** 作符,把原来的b的数据复制到a里

然后函数里对a的修改都是这个副本的修改

函数调用完毕,这个副本也销毁了,原来的b并没有修改

调用的时候当然是myfun(a)

paddlepaddle有四种数据类型和三种序列格式。四种数据类型分别是:dense_vector,sparse_binary_vector,sparse_float_vector和integer。三种序列格式分别是SequenceTypeNO_SEQUENCE,SequenceTypeSEQUENCE,SequenceTypeSUB_SEQUENCE。详细的介绍可参考paddlepaddle官网说明。

举个简单的例子:

如果你的数据是 x = [10, 20, 30, 40, 50],那么就应该使用dense_vector,维度为输入数据的维度,这里是5,代码如下:

x = paddlelayerdata(name='x', type=paddledata_typedense_vector(5))

如果你的数据是 x = [[10, 20, 30], [20, 30, 40], [30, 40, 50], [30, 50, 60]],那么这个数据有4个时间步长,每个步长维度为3,代码如下:

x = paddlelayerdata(name='x', type=paddledata_typedense_vector_sequence(3))

同样的其他类似。

另外,你提到reader,你可能更想知道的是如何构造reader。paddle的reader是一个生成器,返回的是一个函数。

def train_reader(train_x, train_y):

    def reader():        

        for i in xrange(train_yshape[0]):

            yield train_x[i], train_y[i]

    return reader

定义好reader后,现在我们生成我们需要的训练数据

data = nparray([[1, 1], [1, 2], [3, 4], [5, 2]])

label = nparray([[-2], [-3], [-7], [-7]])

train_reader = paddlebatch(

    paddlereadershuffle(

        train_reader(data, label), buf_size=100),

    batch_size=50)

如此就可以使用train_reader进行模型训练了,test_reader的构造方式一样。

Vector Database是一种高效可扩展的NoSQL数据库。它旨在提供快速的键值对存储,支持复杂的数据类型和查询。Vector DB在大数据领域取得了广泛应用,具有高可用性、可靠性和分布式数据存储的特点,适用于数据量大、读写频繁的场景。在使用Vector DB时,需要合理设计数据模型,选择合适的分片策略,还需考虑到数据备份、数据一致性等方面的问题。同时,还需在系统运行过程中进行监控和调优,以保证系统的稳定性和性能。

以上就是关于R入门Day2:数据类型1---向量全部的内容,包括:R入门Day2:数据类型1---向量、R语言-数据类型及查看方式、java中vector与C++中vector用法有哪些区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9697426.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存