精华内容
下载资源
问答
  • python初始化二维数组

    千次阅读 2016-10-11 14:39:50
    array = [[0 for col in range(num1)] for row in range(num2)] num1, num2 为自选常量

    array = [[0 for col in range(num1)] for row in range(num2)]

    num1, num2 为自选常量

    展开全文
  • Python初始化数组及注意事项 初始化一维数组 #方法一 # 0为数组内初始数据,10位数据长度 list = [0]*10 print(list) # 结果:[0, 0, 0, 0, 0, 0, 0,... 初始化二维数组 #方法一 a = [list()] * 3 for i in .

    Python初始化数组及注意事项

    • 初始化一维数组

    #方法一
    # 0为数组内初始数据,10位数据长度
    list = [0]*10  
    print(list)
    # 结果:[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    
    #方法二
    list2 = [0 for i in range(10)]
    print(list2)
    # 结果:[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    
    

     

    • 初始化二维数组

    #方法一
    a = [list()] * 3
    for i in range(3):
        a[i].append(0)
    print(a)
    # 结果:[[0,0,0], [0,0,0], [0,0,0]]
    a[0][0] = 1
    print(a)
    # 结果:[[1,0,0], [1,0,0], [1,0,0]]
    
    
    #方法二
    a = [[0 for i in range(3)] for i in range(3)]
    print(a)
    # 结果:[[0,0,0], [0,0,0], [0,0,0]]
    a[0][0] = 1
    print(a)
    # 结果:[[1,0,0], [0,0,0], [0,0,0]]
    
    

    原因:参见https://blog.csdn.net/qq_41602595/article/details/88688644

    二维情形就不同,因为初始化指定长度的二维list时,我们需要把空序列list()复制n次。如果采用方式一,则对list进行浅拷贝,每一个list调用append等方法时,所有list都会同步调用;而方式二这种python风格的数组comprehension表达式方式,则生成了n个相互独立的list对象,此时每行的list之间互不影响。显然,我们应该使用方式二来进行二维list的指定行数的初始化。
     

    展开全文
  • python初始化二维数组的小问题

    千次阅读 2017-06-10 16:49:26
    python二维数组初始化问题 引子:今天在写用Python写01背包的算法课作业时,发现一个关于二维数组的小问题,本来期末已经很忙了,但这个问题还是值得记录下来的,因为这不是第一次遇到了,这次花了将近一个小时才搞...

     

    python二维数组初始化问题

    引子:今天在用Python写01背包的算法课作业时,发现一个关于二维数组的小问题,本来期末已经很忙了,但这个问题还是值得记录下来的,因为这不是第一次遇到了,这次花了将近一个小时才搞明白。

    问题:

    以如下方式初始化一个二维数组,在使用的过程中有没有问题?

    matrix = [[0] * n] * m

    有问题!可以做个实验:

    >>> m = 3
    >>> n = 4
    >>> matrix = [[0] * n] * m
    >>> matrix
    [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
    >>> matrix[1][2] = 1
    >>> matrix
    [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]
    >>>

    可以看出,我只修改了matrix[1][2]这一个元素,但从结果来看,matrix这个二维数组的每一个一维数组的第3个(下标为2)元素都被修改了。对此我的理解是:在申请matrix数组时,“[0] * n”这个一维数组可能只申请了一个,“ * m”这操作,只是创建了m个指向“[0] * n”的引用,因此,若修改这个一维数组中的元素,则matrix中m个一位数组都会被修改。 更详细解释可以参考此篇博客在python中定义二维数组

    解决方案:

    换种初始化的方式:

    >>> matrix = [[0] * n for i in range(0, m)]
    >>> matrix
    [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
    >>> matrix[1][2] = 1
    >>> matrix
    [[0, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 0]]
    >>>

    可以看出,上述那种我们想要避免的情况已经不再出现了。

    参考文献

    1.在python中定义二维数组,woshare,博客园,http://www.cnblogs.com/woshare/p/5823303.html。

     

    展开全文
  • Python numpy实现二维数组和一维数组拼接的方法撰写时间:...print a.shape输出的值应该为(3,)二维数组2.numpy初始化二维数组a = np.array([[1,2,3]]);b = np.array([[1],[2],[3]]);print a.shape//(1,3)prin...

    Python numpy实现二维数组和一维数组拼接的方法

    撰写时间:2017.5.23

    一维数组

    1.numpy初始化一维数组

    a = np.array([1,2,3]);

    print a.shape

    输出的值应该为(3,)

    二维数组

    2.numpy初始化二维数组

    a = np.array([[1,2,3]]);

    b = np.array([[1],[2],[3]]);

    print a.shape//(1,3)

    print b.shape//(3,1)

    注意(3,)和(3,1)的数组是不一样的,前者是一维数组,后者是二维数组。

    拼接

    3.numpy有很多的拼接函数。比如hstack和vstack等。网上又很多这样的总结帖子。但是两个数组能拼接的条件就是得满足两个数组的维度要相同。所以二维数组和一维数组拼接的时候需要使用newaxis将一维数组转化为二维数组,也就是shape从(3,)转化为(3,1)。

    a = np.array([1,2,3]);

    b = np.array([[1],[2],[3]]);

    #将一维数组a转化为二维数组

    a = a[:,np.newaxis];

    c = np.concatenate((b,a),axis=1)

    print c.shape//输出为(3,2)

    以上这篇Python numpy实现二维数组和一维数组拼接的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

    时间: 2018-06-02

    最近找遍了python的各个函数发现无法直接生成随机的二维数组,其中包括random()相关的各种方法,都没有得到想要的结果.最后在一篇博客中受到启发,通过列表解析的方法得到随机的二维数组. 具体如下: a = [[random.randint(1, 4) for j in range(1, 3)] for i in range(1, 11)] print(array(a)) 其中random.randint(1, 4)用来产生一个随机整数.此时创建了一个10行2列的数组. [[1 3] [1

    关于python中的二维数组,主要有list和numpy.array两种. 好吧,其实还有matrices,但它必须是2维的,而numpy arrays (ndarrays) 可以是多维的. 我们主要讨论list和numpy.array的区别: 我们可以通过以下的代码看出二者的区别 >>import numpy as np >>a=[[1,2,3],[4,5,6],[7,8,9]] >>a [[1,2,3],[4,5,6],[7,8,9]] >>type(a

    题目的意思大致是在一个n*m的二维数组中,找到一个局部峰值.峰值要求大于相邻的四个元素(数组边界以外视为负无穷),比如最后我们找到峰值A[j][i],则有A[j][i] > A[j+1][i] && A[j][i] > A[j-1][i] && A[j][i] > A[j][i+1] && A[j][i] > A[j][i-1].返回该峰值的坐标和值. 当然,最简单直接的方法就是遍历所有数组元素,判断是否为峰值,时间复杂度为O(n^2

    本文实例讲述了Python实现二维数组按照某行或列排序的方法.分享给大家供大家参考,具体如下: lexsort支持对数组按指定行或列的顺序排序:是间接排序,lexsort不修改原数组,返回索引. (对应lexsort 一维数组的是argsort a.argsort()这么使用就可以:argsort也不修改原数组, 返回索引) 默认按最后一行元素有小到大排序, 返回最后一行元素排序后索引所在位置. 设数组a, 返回的索引ind,ind返回的是一维数组 对于一维数组, a[ind]就是排序后的数组.

    blank.gif

    本文实例讲述了Python简单获取二维数组行列数的方法.分享给大家供大家参考,具体如下: import numpy as np x = np.array([[1,2,5],[2,3,5],[3,4,5],[2,3,6]]) # 输出数组的行和列数 print x.shape # (4, 3) # 只输出行数 print x.shape[0] # 4 # 只输出列数 print x.shape[1] # 3 本机测试运行结果如下图所示: 或者: >>> arr = [[1,4,7,10,1

    blank.gif

    二维数组 二维数组本质上是以数组作为数组元素的数组,即"数组的数组",类型说明符 数组名[常量表达式][常量表达式].二维数组又称为矩阵,行列数相等的矩阵称为方阵.对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素. Python中创建二维数组 Python中的列表list可以当做一维数组使用,但是没有直接的定义使用二维数组.如果直接使用a = [][]会产生SyntaxError: invalid syntax语法不正确错误. 一般Python中创建二

    前不久对于Python输入二维数组有些不解,今日成功尝试,记以备忘.这里以输入1-9,3*3矩阵为例 n=int(input()) line=[[0]*n]*n for i in range(n): line[i]=input().split(' ') print(line) 使用数据转换为int即可! 以上这篇Python输入二维数组方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: 一些Python中的二维数组的操作方法 python中字

    有一道算法题题目的意思是在二维数组里找到一个峰值.要求复杂度为n. 解题思路是找田字(四边和中间横竖两行)中最大值,用分治法递归下一个象限的田字. 在用python定义一个二维数组时可以有list和numpy.array两种方式,看了几篇python中二维数组的建立的博客发现大多都是建立的初始化的二维数组,而我需要通过文件读取得到的是字符串,再把字符串转换为二维数组,找不到解决方法还是决定自己来转换. 首先,最开始的字符串输出如下,数字之间有空格 思路就是把先按换行符进行切片,再对每一行的字符再

    0.目录 1.遇到的问题 2.创建二维数组的办法 •3.1 直接创建法 •3.2 列表生成式法 •3.3 使用模块numpy创建 1.遇到的问题 今天写Python代码的时候遇到了一个大坑,差点就耽误我交作业了... 问题是这样的,我需要创建一个二维数组,如下: m = n = 3 test = [[0] * m] * n print("test =", test) 输出结果如下: test = [[0, 0, 0], [0, 0, 0], [0, 0, 0]] 是不是看起来没有一点问

    使用new 创建二维数组方法 #include using namespace std; void main() { //用new创建一个二维数组,有两种方法,是等价的 //一: int (*p)[10] = new int[5][10]; //二: int **p = new int* [5]; for(int i=0;i <5;i++) p[i] = new int[10]; //指针数组的创建,也有两种方法 //一: char **pa = new char*

    对于二维数组,img_mask [[ 0 0 0 ..., 7 7 7] [ 0 0 0 ..., 7 7 7] [ 0 0 0 ..., 7 7 7] ..., [266 266 266 ..., 253 253 253] [266 266 266 ..., 253 253 253] [266 266 266 ..., 253 253 253]] 显示为图片的代码为: import matplotlib.pyplot as pyplot pyplot.imshow(im_mask) 以上这篇P

    L3Byb3h5L2h0dHAvZmlsZXMuamI1MS5uZXQvZmlsZV9pbWFnZXMvYXJ0aWNsZS8yMDE5MDkvMjAxOTkxODExMTAwMzQ5OS5qcGcmIzA2MzsyMDE5ODE4MTExMDE1.jpg

    本文实例为大家分享了C++利用函数动态创建二维数组的具体代码,供大家参考,具体内容如下 很简单,使用两个new创建即可. 运行截图及代码如下: #include #include #include #include using namespace std; int **creat(int m,int n) { int **p; int i,j; p = new int *[m]; f

    简介:由于经常在使用矩阵进行计算时,会首先将一维数组转为二维数组.因此,在这里记录一下,也希望对他人有帮助. 实例代码: package deal; public class ArryTest { public static void main(String[] args) { //创建一个一维数组 0,1,2,3...,10 double [] c= new double[10]; for (int i = 0; i < c.length; i++) { c[i]=i; } double[][

    展开全文
  • 没错,那我们初始化一个二维数组时,是否可以这样做呢: multi = [[0] * 5] * 3 其实,这样做是不对的,因为[0] * 5是一个一维数组的对象,* 3的话只是把对象的引用复制了3次,比如,我修改multi[0][0]: multi = ...
  • Python初始化一个5 x 3每项为0的数组,最好方法是: multilist=[[0forcolinrange(5)]forrowinrange(3)] 我们知道,为了初始化一个...没错,那我们初始化一个二维数组时,是否可以这样做呢: multi=[[0]*5]*...
  • Python3 初始化二维数组注意地方

    万次阅读 2019-03-06 10:43:52
    初始化二维数组举例: arr = [[] for i in range(5)] &gt;&gt;&gt; [[], [], [], [], []] arr = [[0, 0] for i in range(5)] arr[2].append(2) &gt;&gt;&gt; [[0, 0], [0, 0], [0, 0, 2],...
  • 二维数组二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型...Python中创建二维数组Python中的列表list可以当做一维数组使用,但是没有直接的定义使用二维数组。如果直接使用a = [][]会产生Syntax...
  • Python3 List 初始化二维数组 踩坑记录

    千次阅读 2018-08-30 14:22:43
    初始化二维数组举例: &gt;&gt;&gt; test = [[ 0 for i in range(2)] for j in range(3)] &gt;&gt;&gt; test [[0, 0], [0, 0], [0, 0]] 初始一个一维数组,可以使用* &gt;&gt;...
  • 2.numpy初始化二维数组 a = np.array([[1,2,3]]); b = np.array([[1],[2],[3]]); print a.shape//(1,3) print b.shape//(3,1) 注意(3,)和(3,1)的数组是不一样的,前者是一维数组,后者是二维数组。 拼接 ...
  • 初始化4*3的二维数组 a = [[0 for col in xrange(3)] for row in xrange(4)] 而不可以用: a = [[0]*3]*4 [0]*3是生成一个一维数组,再*4只是会复制出三个引用,当修改a[0][0]时,其他的三个引用的值也...
  • 一、引言这是我在学习《Python Algorithms 2nd》第 29 页时候看到的代码:N = [[0]*10 for i in range(10)]按照作者的说法,上述代码会生成一个初始化全部元素值为 0 的二维数组。那么,让我们探讨下,这是为什么呢...
  • 本节学习二维数组二维数组与一维数组相似,但是用法上要比一维数组复杂一点。后面的编程中,二维数组用得很少,因为二维数组的本质就是一维数组,只不过形式上是二维的。能用二维数组解决的问题用一维数组也能解决...
  • 序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第个索引是1,依此类推。 Python有6个序列的内置类型,但最常见的是列表和元组。Python的元组与列表类似,不同之处在于元组的元素不能修改。...
  • 撰写时间:2017.5.23一...print a.shape输出的值应该为(3,)二维数组2.numpy初始化二维数组a = np.array([[1,2,3]]); b = np.array([[1],[2],[3]]);print a.shape//(1,3) print b.shape//(3,1)注意(3,)和(3,
  • 果然很麻烦,人生苦短,还是用python吧。#include #include <string.h>int main(void){ int n,m; while(std::cin >>n >>m) { //动态创建二维数组 int **a = new int *[n]; for(int i=0; i;
  • Python输入二维数组方法前不久对于Python输入二维数组有些不解,今日成功尝试,记以备忘。这里以输入1-9,3*3矩阵为例n=int(input())line=[[0]*n]*nfor i in range(n):line[i]=input().split(' ')print(line)使用数据...
  • Python中创建二维数组

    千次阅读 2017-09-15 19:45:26
    Python中的列表list可以当做一维数组使用,但是没有直接的定义使用二维数组。如果直接使用a = [][]会产生SyntaxError: invalid syntax语法不正确错误。一般Python中创建二维数组的方法是使用列表解析的方法 列表...
  • python中定义二维数组 思维碎片在python中定义二维数组发表于 2012/11/22 由 liam2一次偶然的机会,发现python中list非常有意思。先看一段代码[py] array = [0, 0, 0] matrix = [array*3] p...
  • 注意,Python初始化一个二维数组 不能用 [[0] * col] * row,这样每行创建的是 [0]*col的引用!!!!!! 使用 [[0] * col for _ in range(row)]
  • 002pc.com认为此文章对《python把多个一维数组变成二维数组python爬取并计算成绩》说的很在理。# -*- coding: utf-8 -*-import urllibimport urllib2import cookielibimport reimport string#绩点运算class SDU:#类...
  • 二维数组初始化最近刷题碰到需要用二维数组做的题目,所以就遇到了这样的坑。n = 3m = 3dp = [[0] * n] * mdp[0][1] = 1print dp# output:# [[0, 1, 0], [0, 1, 0], [0, 1, 0]]上面这段代码是想修改二维数组第1行...
  • Python维数组初始化 ...Python的一维数组初始化时没有太大问题,但是二维初始化就不能这么搞了,不信你看 In [5]: a = [[0]*5]*5 In [6]: a Out[6]: [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0,.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,711
精华内容 8,284
关键字:

python初始化二维数组

python 订阅