把DataDic={}放进第一个循环的里面就可以了。
之所以输出时候都是最后一次的数值,是因为你从始至终就只有一个dict,声明在了循环外面,所以你循环里面的前四行代码起到的作用就是修改这个dict的值,第五行就是把这个dict一遍又一遍加进了那个list里面。
而如果你把dict声明在循环里面的话,每一次循环都会新建一个新的dict,这样你循环最后一行就可以往list里面添加进不同的dict了。
一维数组情况:
二维数组情况:
3参数情况:
2参数情况:
1参数情况:
一维情况:
二维情况:
一维情况:
二维情况:
一维情况:
二维情况:第三个参数指定维度
只查看行数、或者列数
逗号隔开两个索引
某些行
某些列
可以看出append()函数在二维数组中添加元素,结果转为了一维数组。
那怎么保持二维数组呢?可以设置axis参数按行或者按列添加
可以看出先把二维数组降成了一维数组,再在索引为1的位置添加元素。
那么怎么保持在二维添加元素呢? 同样设置axis参数
也分按行和按列删除
标记缺失值: isnan()函数
补充缺失值:
同样axis参数可以指定拼接按行还是按列
2 hstack()函数:以水平堆叠的方式拼接数组
3 vstack()函数:以垂直堆叠的方式拼接数组
第二个参数还可以是数组,指定拆分的位置
hsplit()函数:横向拆成几个数组
vsplit()函数:纵向拆成几个数组
数组与数组之间的运算
数组与数值的运算
可以指定整个数组求和,还是按行或者按列
axis=0:每一列的元素求和
axis=1:每一行的元素求和
axis=0:每一列求均值
axis=1:每一行求均值
axis=0:每一列求最大值
axis=1:每一行求最大值
pandas有两个重要的数据结构对象:Series和DataFrame。
Series是创建一个一维数组对象,会自动生成行标签。
会自动生成行列标签
也可以用字典形式生成数据
在用字典生成数据的基础上,同时指定行标签
例如对下表的数据进行读取
4月是第四个表,我们应把sheet_name参数指定为3;因为索引是从0开始的。
可以看出read_excel()函数自动创建了一个DataFrame对象,同时自动把第一行数据当做列标签。
可以看出不给出header参数时,该参数默认为0。
header=1时结果如下:
header=None时结果如下:
index_col=0时,第0列为列标签
index_col=0时
usecols=[2]:指定第二列
指定多列
数据如下:
[外链转存失败,源站可能有防盗链机制,建议将保存下来直接上传(img-j1SHxY8y-1637655972909)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211114192949607png)]
nrows=3时
head()函数中参数为空默认前5行
指定head(3)时如下
numpy模块也是shape
查看特定列的书库类型
特定列数据类型转换
先查看一下所有数据
与单行相比,结果显示的格式不一样了
iloc()挑选:
或者给出区间
挑选数据要么标签,要么索引挑选
或者
或者写成区间
标签挑选
或者索引挑选
先查看一下数据
或者用字典一对一修改
[外链转存失败,源站可能有防盗链机制,建议将保存下来直接上传(img-a6QKIoie-1637655972912)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123110431201png)]
isin()函数查看表中是否有该值
查看特定列是否有该值
可以看出上述代码并没有替换,那怎么替换呢?
末尾插入一列
指定插入到哪列
axis参数可以指定删除行还是删除列
指定标签删除
指定索引删除
方法三
指定行标签删除
指定索引删除
方法三:
先查看所有数据
info()函数查看数据类型,还可以查看是否有缺失值
isnull()函数查看是否有缺失值
在numpy模块中用isnan()函数
删除有缺失值的行
删除整行都为缺失值的行: 需要指定how参数
不同列的缺失值设置不同的填充值
默认保留第一个重复值所在的行,删除其他重复值所在的行
保留第一个重复值所在的行
保留最后一个重复值所在的行
是重复的就删除
降序如下
参数指定first时,表示在数据有重复值时,越先出现的数据排名越靠前
获取产品为单肩包的行数据
获取数量>60的行数据
获取产品为单肩包 且 数量>60 的行数据
获取产品为单肩包 或 数量>60 的行数据
stack()函数转换成树形结构
how参数指定外连接
on参数指定按哪一列合并
concat()函数采用 全连接 的方式,没有的数设置为缺失值
重置行标签
效果与concat()一样
末尾添加行元素
指定列求和
指定列求均值
指定列求最值
获取单列的
corr()函数获取相关系数
获取指定列与其他列的相关系数
[外链转存失败,源站可能有防盗链机制,建议将保存下来直接上传(img-46g9qgQw-1637655972913)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123135643804png)]
groupby()函数返回的是一个DataFrameBy对象,该对象包含分组后的数据,但是不能直观地显示出来。
分组后获取指定列的汇总情况
获取多列的汇总情况
获取多列的情况
ta = pdread_excel(‘相关性分析xlsx’)
print(data)
corr()函数获取相关系数
获取指定列与其他列的相关系数
[外链转存中…(img-46g9qgQw-1637655972913)]
groupby()函数返回的是一个DataFrameBy对象,该对象包含分组后的数据,但是不能直观地显示出来。
分组后获取指定列的汇总情况
获取多列的汇总情况
获取多列的情况
#coding=utf-8
'''
Created on 2014-3-21
@author: Neo
'''
def PrintList(array):#输出数组
for i in range(array__len__()):
print array[i]
def SetList(array):#给数组赋值
row = 11
col = 11
for i in range(array__len__()):
for j in range(array[i]__len__()):
array[i][j] = row
row += 10
col += 1
row = col
print "赋值后的二维数组:"
PrintList(array)
return array
def InitList(x, y):
#初始化一个二维数组
array = [([0] y) for i in range(x)]
return array
def GetListByCoord(array, radius, x, y):
#根据半径来确定数组的行数和列数
row_col = 2 radius + 1
#初始化结果数组
result = InitList(row_col, row_col)
#获取传入的array的行数和列数
arrayRow, arrayCol = len(array), len(array[0])
#坐标x、y的值即为结果数组的中心,依此为偏移
for i in range(result__len__()):
for j in range(result__len__()):
if (i+x-radius < 0 or j+y-radius < 0 or
i+x-radius >= arrayRow or j+y-radius >= arrayCol):
result[i][j] = 0
else:
result[i][j] = array[i+x-radius][j+y-radius]
#打印结果
print "结果为:"
PrintList(result)
if __name__ == '__main__':
#数组7列6行
array = SetList(InitList(6,7))
GetListByCoord(array, 1, 3, 3)
GetListByCoord(array, 2, 3, 3)
GetListByCoord(array, 2, 0, 0)
GetListByCoord(array, 2, 0, 6)
GetListByCoord(array, 2, 5, 0)
GetListByCoord(array, 2, 5, 6)
运行结果为:
---------------------------------------------------------------------------------------------
赋值后的二维数组:
[11, 21, 31, 41, 51, 61, 71]
[12, 22, 32, 42, 52, 62, 72]
[13, 23, 33, 43, 53, 63, 73]
[14, 24, 34, 44, 54, 64, 74]
[15, 25, 35, 45, 55, 65, 75]
[16, 26, 36, 46, 56, 66, 76]
结果为:
[33, 43, 53]
[34, 44, 54]
[35, 45, 55]
结果为:
[22, 32, 42, 52, 62]
[23, 33, 43, 53, 63]
[24, 34, 44, 54, 64]
[25, 35, 45, 55, 65]
[26, 36, 46, 56, 66]
结果为:
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 11, 21, 31]
[0, 0, 12, 22, 32]
[0, 0, 13, 23, 33]
结果为:
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[51, 61, 71, 0, 0]
[52, 62, 72, 0, 0]
[53, 63, 73, 0, 0]
结果为:
[0, 0, 14, 24, 34]
[0, 0, 15, 25, 35]
[0, 0, 16, 26, 36]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
结果为:
[54, 64, 74, 0, 0]
[55, 65, 75, 0, 0]
[56, 66, 76, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
楼上只能对应位置行两两比较,一旦相同行不在相同位置就不行了,建议使用集合交集思路
a = set([tuple(t) for t in a])
b = set([tuple(t) for t in b])
matched = nparray(list(aintersection(b)))
from xlrd import open_workbook
wb=open_workbook(r'd:/222xlsx')
tb=wbsheets()[0]
data=[]
for r in range(tbnrows):
val=[]
for c in range(tbncols):
valappend(tbcell_value(r,c))
dataappend(tuple(val))
print(data)
我很好奇,你们用的是什么框架,如果用的是pytest 应该搞这个完全没问题的,纯属好奇,同行。方便的话说下哈。
你这个问题很简单,如果你们用的事pytest 可以在公用函数里面定义一个函数取值,这个返回数据为
id=[]
for i in res["data"]:
####for j in i:
######## for k in i["list"]:
############ id append(k["iUserid"])
这个方法是在不改变数据内容的情况下,改变一个数组的格式,参数及返回值,官网介绍:
a:数组--需要处理的数据
newshape:新的格式--整数或整数数组,如(2,3)表示2行3列,新的形状应该与原来的形状兼容,即行数和列数相乘后等于a中元素的数量
order:
首先做出翻译: order : 可选范围为{‘C’, ‘F’, ‘A’}。使用索引顺序读取a的元素,并按照索引顺序将元素放到变换后的的数组中。如果不进行order参数的设置,默认参数为C。
(1)“C”指的是用类C写的读/索引顺序的元素,最后一个维度变化最快,第一个维度变化最慢。以二维数组为例,简单来讲就是横着读,横着写,优先读/写一行。
(2)“F”是指用FORTRAN类索引顺序读/写元素,最后一个维度变化最慢,第一个维度变化最快。竖着读,竖着写,优先读/写一列。注意,“C”和“F”选项不考虑底层数组的内存布局,只引用索引的顺序。
(3)“A”选项所生成的数组的效果与原数组a的数据存储方式有关,如果数据是按照FORTRAN存储的话,它的生成效果与”F“相同,否则与“C”相同。这里可能听起来有点模糊,下面会给出示例。
二、示例解释
1、首先随机生成一个4行3列的数组
2、使用reshape,这里有两种使用方法,可以使用npreshape(r,(-1,1),order='F'),也可以使用r1=rreshape((-1,1),order='F'),这里我选择使用第二种方法。通过示例可以观察不同的order参数效果。
通过例子可以看出来,F是优先对列信息进行 *** 作,而C是优先行信息 *** 作。如果未对r的格式进行设置,那么我们rashape的时候以“A”的顺序进行order的话,它的效果和“C”相同。
3、我们将r的存储方式进行修改,修改为类Fortan的方式进行存储。并做与第2步类似的 *** 作。
基础 *** 作样例:
1引入numpy,名称为np
2接下来创建一个数组a,可以看到这是一个一维的数组
3使用reshape()方法来更改数组的形状,可以看到看数组d成为了一个二维数组
4通过reshape生成的新数组和原始数组公用一个内存,也就是说,假如更改一个数组的元素,另一个数组也将发生改变
5同理还可以得到一个三维数组
reshape(-1,1)什么意思:
大意是说,数组新的shape属性应该要与原来的配套,如果等于-1的话,那么Numpy会根据剩下的维度计算出数组的另外一个shape属性值。
举例:
同理,只给定行数,newshape等于-1,Numpy也可以自动计算出新数组的列数。
以上就是关于问个python的数组问题全部的内容,包括:问个python的数组问题、python数据分析模块:numpy、pandas全解、python 查找二维数组的相邻元素等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)