-
2020-12-03 19:49:23
python中表示多维数组的方法
发布时间:2020-08-12 13:47:55
更多相关内容 -
python多维数组改变元素值的坑?
2020-11-29 01:34:32>>> l=[[0 for i in range(10)] for i in range(10)] >>> l [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0,... 0, 0, 0, 0], [23, 0, 0, 0, 0, 0, 0, 0, 0, 0]] >>> 为什么l和n能正确修改,L和N修改了每个子列表的首元素值?>>> l=[[0 for i in range(10)] for i in range(10)]
>>> l
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
>>> l[0][0]=23
>>> l
[[23, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
>>> n=[[0]*10 for i in range(10)]
>>> n
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
>>> n[0][0]=23
>>> n
[[23, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
>>> N=[[0]*10]*10
>>> N
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
>>> N[0][0]=23
>>> N
[[23, 0, 0, 0, 0, 0, 0, 0, 0, 0], [23, 0, 0, 0, 0, 0, 0, 0, 0, 0], [23, 0, 0, 0, 0, 0, 0, 0, 0, 0], [23, 0, 0, 0, 0, 0, 0, 0, 0, 0], [23, 0, 0, 0, 0, 0, 0, 0, 0, 0], [23, 0, 0, 0, 0, 0, 0, 0, 0, 0], [23, 0, 0, 0, 0, 0, 0, 0, 0, 0], [23, 0, 0, 0, 0, 0, 0, 0, 0, 0], [23, 0, 0, 0, 0, 0, 0, 0, 0, 0], [23, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
>>> arr=[0 for i in range(10)]
>>> L=[arr for i in range(10)]
>>> L
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
>>> L[0][0]=23
>>> L
[[23, 0, 0, 0, 0, 0, 0, 0, 0, 0], [23, 0, 0, 0, 0, 0, 0, 0, 0, 0], [23, 0, 0, 0, 0, 0, 0, 0, 0, 0], [23, 0, 0, 0, 0, 0, 0, 0, 0, 0], [23, 0, 0, 0, 0, 0, 0, 0, 0, 0], [23, 0, 0, 0, 0, 0, 0, 0, 0, 0], [23, 0, 0, 0, 0, 0, 0, 0, 0, 0], [23, 0, 0, 0, 0, 0, 0, 0, 0, 0], [23, 0, 0, 0, 0, 0, 0, 0, 0, 0], [23, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
>>>
为什么l和n能正确修改,L和N修改了每个子列表的首元素值?
-
python怎么操作多维数组元素
2020-11-29 01:34:35展开全部在Python中,一个像这样的多维表格可以通过“序列的序636f707962616964757a686964616f31333365646263列”实现。一个表格是行的序列。每一行又是独立单元格的序列。这类似于我们使用的数学记号,在数学里我们...展开全部
在Python中,一个像这样的多维表格可以通过“序列的序636f707962616964757a686964616f31333365646263列”实现。一个表格是行的序列。每一行又是独立单元格的序列。这类似于我们使用的数学记号,在数学里我们用Ai,j,而在Python里我们使用A[i][j],代表矩阵的第i行第j列。
这看起来非常像“元组的列表”(Lists of Tuples)。
“列表的列表”示例:
我们可以使用嵌套的列表推导式(list comprehension)创建一个表格。 下面的例子创建了一个“序列的序列”构成的表格,并为表格的每一个单元格赋值。
table= [ [ 0 for i in range(6) ] for j in range(6) ]
print table
for d1 in range(6):
for d2 in range(6):
table[d1][d2]= d1+d2+2
print table
123456
程序的输出结果如下:
[[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]],
[[2, 3, 4, 5, 6, 7], [3, 4, 5, 6, 7, 8], [4, 5, 6, 7, 8, 9],
[5, 6, 7, 8, 9, 10], [6, 7, 8, 9, 10, 11], [7, 8, 9, 10, 11, 12]]
1234
这个程序做了两件事:创建了一个6 × 6的全0表格。 然后使用两枚骰子的可能组合的数值填充表格。 这并非完成此功能最有效的方式,但我们通过这个简单的例子来演示几项技术。我们仔细看一下程序的前后两部分。
程序的第一部分创建并输出了一个包含6个元素的列表,我们称之为“表格”;表格中的每一个元素都是一个包含6个0元素的列表。它使用列表推导式,对于范围从0到6的每一个j都创建对象。每一个对象都是一个0元素列表,由i变量从0到6遍历产生。初始化完成之后,打印输出二维全0表格。
推导式可以从里向外阅读,就像一个普通表达式一样。内层列表[ 0 for i in range(6) ]创建了一个包含6个0的简单列表。外层列表[ [...] for j in range(6) ]创建了这些内层列表的6个深拷贝。
程序的第2个部分对2个骰子的每一个组合进行迭代,填充表格的每一个单元格。这由两层嵌套循环实现,每一个循环迭代一个骰子。外层循环枚举第一个骰子的所有可能值d1。内层循环枚举第二个骰子d2。
更新每一个单元格时需要通过table[d1]选择每一行;这是一个包含6个值的列表。这个列表中选定的单元格通过...[d2]进行选择。我们将掷骰子的值赋给这个单元格,d1+d2+2。
其他示例:
打印出的列表的列表不太容易阅读。下面的循环会以一种更加可读的形式显示表格。
for row in table:
print row
[2, 3, 4, 5, 6, 7]
[3, 4, 5, 6, 7, 8]
[4, 5, 6, 7, 8, 9]
[5, 6, 7, 8, 9, 10]
[6, 7, 8, 9, 10, 11]
[7, 8, 9, 10, 11, 12]
12345678910111213
作为练习,读者可以试着在打印列表内容时,再打印出行和列的表头。提示一下,使用"%2d" % value字符串运算符可以打印出固定长度的数字格式。
显示索引值(Explicit Index Values)。
我们接下来对骰子表格进行汇总统计,得出累计频率表。我们使用一个包含13个元素的列表(下标从0到12)表示每一个骰子值的出现频率。观察可知骰子值2在矩阵中只出现了一次,因此我们期望fq[2]的值为1。遍历矩阵中的每一个单元格,得出累计频率表。
fq= 13 * [0]
for i in range(6):
for j in range(6):
c= table[i][j]
fq[ c ] += 1
12345
使用下标i选出表格中的行,用下标j从行中选出一列,得到单元格c。然后用fq统计频率。
这看起来非常的数学和规范。
Python提供了另外一种更简单一些的方式。
使用列表迭代器而非下标,表格是列表的列表,可以采用无下标的for循环遍历列表元素。
fq= 13 * [0]
print fq
for row in table:
for c in row:
fq[c] += 1
print fq[2:
-
numpy向空的二维数组中添加元素的方法
2020-09-19 23:55:33今天小编就为大家分享一篇numpy向空的二维数组中添加元素的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
numpy中三维数组中加入元素后的位置详解
2020-11-29 01:34:34今天做数据处理时,遇到了从...现对三维数组中的元素位置结合代码做详细归纳总结,方便日后查阅和为网友答疑!图示效果图:直接贴代码:def test3D():import numpy as npdata_array = np.zeros((3, 5, 6), dtype=np...今天做数据处理时,遇到了从三维数组中批量加入二维数组的需求。其中三维数组在深度学习的特征数据处理时经常会使用到,所以读者有必要对该小知识点做到清楚了解并掌握。现对三维数组中的元素位置结合代码做详细归纳总结,方便日后查阅和为网友答疑!
图示效果图:
直接贴代码:
def test3D():
import numpy as np
data_array = np.zeros((3, 5, 6), dtype=np.int)
data_array[1, 2, 2] = 1
print(data_array)
介绍:通过np.zeros创建一个3行5列6个通道的三维数组,并给第二个通道的第一行第二列赋值1.
运行结果图:
分析:有运行结果可知,创建了六个通道,在深度学习中这六个通道相当于六个Feature Map,对应结果图中的六列。
再向外看一层,共有三个块,每个块代表这个通道的第几行数据。
每个块里有五行数据,每一行代表每个通道的第几列数据
所以,代码中的赋值语句: data_array[1, 2, 2] = 1
表示为第2个通道,下标从0开始,所以在图中位置为第三列;第1行第2列,下标从0开始,所以图中表示第二个块的第三行;即为图中所示位置。
补充:三维数组的求和
多维数组的轴(axis=)是和该数组的size(或者shape)的元素是相对应的;
>>> np.random.seed(123)
>>> X = np.random.randint(0, 5, [3, 2, 2])
>>> print(X)
[[[5 2]
[4 2]]
[[1 3]
[2 3]]
[[1 1]
[0 1]]]
>>> X.sum(axis=0)
array([[7, 6],
[6, 6]])
>>> X.sum(axis=1)
array([[9, 4],
[3, 6],
[1, 2]])
>>> X.sum(axis=2)
array([[7, 6],
[4, 5],
[2, 1]])
如果将三维数组的每一个二维看做一个平面(plane,X[0, :, :], X[1, :, :], X[2, :, :]),三维数组即是这些二维平面层叠(stacked)出来的结果。则(axis=0)表示全部平面上的对应位置,(axis=1),每一个平面的每一列,(axis=2),每一个平面的每一行。
以上这篇numpy中三维数组中加入元素后的位置详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
-
python 显示数组全部元素的方法
2020-12-17 14:56:58python 显示数组全部元素的方法如下所示:import numpy as npnp.set_printoptions(threshold='nan')以上这篇python 显示数组全部元素的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多... -
python中如何表示多维数组
2020-11-23 07:48:22python中表示多维数组的方法:可以利用列表中夹带列表的形式来表示。具体方法:首先构造每一个元素列表;然后将每个元素列表添加进矩阵中即可。矩阵是一个列表,矩阵中的每一个元素也是一个列表。在python中一不能... -
D02 Numpy常用函数,如何优雅的遍历一个多维数组?
2021-01-29 11:30:42当我们想要遍历一个多维数组的时候,如果通过不停的使用循环去遍历,这会让我们的代码可读性与性能都变得很差,numpy提供了一个函数nditer,以帮助我们遍历数组。nditer的入参是一个数组,返回值是一个可迭代对象。... -
python 向二维数组中追加元素
2019-06-15 15:37:58https://www.cnblogs.com/btchenguang/archive/2012/01/30/2332479.html -
Python创建多维列表(多维数组)
2020-12-17 21:16:58在做算法题时看到用来生成多维数组的方法 nums=[[0]*n for i in range(n)]#初始化一个n*n的零阵 这里[]中由一个表达式和一个for循环组成,for循环代表了nums中依次填充的元素个数,每次填充的元素为表达式的返回值... -
Python高级特性——详解多维数组切片(Slice)
2020-11-26 09:09:11Python高级特性——详解多维数组切片(Slice)(1)我们先用arange函数创建一个数组并改变其维度,使之变成一个三维数组:>>> a = np.arange(24).reshape(2,3,4)>>> aarray([[[ 0, 1, 2, 3],[ 4, 5, 6, 7],[ 8, 9, 10, ... -
Python学习 从低维数组到多维数组切片
2019-04-26 22:01:27python的切片操作十分简洁,但是自己遇到的问题是在切片操作发现省略号,经过查询原来是高维数组切片操作。现在进行一下记录。 首先,第一个问题是python中的列表list和numpy中的array的关系。二者是不同的。虽然都... -
Python笔记:np数组插入
2020-11-25 12:01:50做项目时遇到对图片的处理,采用的是np数组的格式,这里记录一下两种高维numpy数组插入元素的方法。opencv读入的RGB图片是以三维数组保存的,比如cv读入一张112x112的图片,当我们用numpy.array保存时,图片的shape... -
python中数组与多维数组用法介绍
2020-11-21 01:48:36增加时a.append( 'a ')...这时,你需要先添加元素,再引用就没有问题 了。如果想预先保留空间,可以使用循环来给list,每个元素一个缺省值,再引用就不会有问题 了。如:代码如下 复制代码a=[]for i in range(100):a... -
Python将数组元素按列写入csv文件
2022-03-17 23:32:29Python将数组元素按列写入csv文件 import pandas as pd #长度必须保持一致,否则报错 a = [x for x in data] b = [x for x in data3] c = [x for x in data2] #字典中的key值即为csv中列名 dataframe = pd.... -
Python的多维空数组赋值方法
2020-12-09 02:40:05创建二维数组或者多维数组也是比较简单。可以这样:list1 = [1,2,]list1.append([3,4,])可以这样:list2 = [1,2,[3,4,],]还可以这样:list3 = [1,2]list3.insert(2, [3,4])比较特殊的情况是:list0 = []list0.append... -
python多维数组运算-女性时尚流行美容健康娱乐mv-ida网
2020-12-17 09:02:55自动秒收录 如何加入 (当前页) 购买本站源码 自媒体交流 查询是否收录 查询收录 × 快速加入 只要做上本站的友情链接... 站点标题: python多维数组运算-女性时尚流行美容健康娱乐mv-ida网 seo查询 | 网址: http://... -
一、Numpy库与多维数组
2021-01-29 18:24:05#Author:Zhang Yuanimportnumpy as np'''重点摘录:轴的索引axis=i可以理解成是根据[]层数来判断的,0表示[],1表示[[]]...Numpy广播的规则可理解.../|,少用关键字and/orNumpy的向量化操作比纯Python速度更快。nda... -
python中如何表示多维数组?
2021-01-11 23:18:41python中表示多维数组的方法:可以利用列表中夹带列表的形式来表示。具体方法:首先构造每一个元素列表;然后将每个元素列表添加进矩阵中即可。矩阵是一个列表,矩阵中的每一个元素也是一个列表。在python中一不能... -
python中如何表示多维数组(即矩阵形式)
2018-07-27 16:32:25python中如何表示多维数组 在java或者c以及其他语言中,表示个“整型3行4列”的矩阵,可以这样声明:int a[3][4]; 但是在python中一不能声明变量int,二不能列出维数。我们只能利用列表中夹带列表形式表示。 以... -
python创建数组
2020-11-29 01:46:15广告关闭腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!java创建二维数组我门来看看java创建二... 创建一个python二位数组的尴尬也想模仿一下java,奈何只能:... -
python 申请内存空间,用于创建多维数组的实例
2021-03-17 11:04:52python 申请内存空间,用于创建多维数组的实例以三维数组为例先申请1个一维数组空间:mat = [None]*d1d1是第一维的长度。再把mat中每个元素扩展为第二维的长度:for i in range(len(mat)):mat[i][j] = [None]*d2类似... -
python 数组去重的方法
2022-01-12 20:36:15python 数组去重的方法 def getNonRepeatList1(data): return list(set(data)) def getNonRepeatList2(data): new_data = [] for i in range(len(data)): if data[i] not in new_data: ...#多维数组适用,作用与 -
Python-Numpy多维数组--数组操作
2018-12-26 14:42:34flat 数组上的一维迭代器 3. flatten 返回折叠为一维的数组副本 4. ravel 返回连续的展开数组 (1)numpy.reshape这个函数在不改变数据的条件下修改形状,它接受如下参数: numpy.reshape(arr, ... -
Python: NumPy中的多维数组ndarray
2017-10-15 20:28:40Python中的数组 -
在Python中建立N维数组并赋初值
2020-11-27 23:58:32标签:在Python中,由于不像C++/Java这样的语言可以方便的用a[i][j]=0的方式,建立二维数组并赋初值,所以需要一个相对巧妙的方法。可以用列表解析的方式,eg:>>> mat=[[0 for i in range(5)] for j in range(5)]>>>... -
python-列表增删改查、排序、两个list合并、多维数组等
2020-11-30 11:15:20stus.insert(,) 在指定位置添加一个元素,逗号前填写列表的下标值,逗号后填写需要添加的元素值;#增stus.append('小乔') #在列表末尾增加一个元素stus.insert(1,'秋秋') #在指定位置添加一个元素三、删除列表中的...