精华内容
下载资源
问答
  • list_a[list_b] TypeError: list indices must be integers or slices, not list e = list_a[array_b] TypeError: only integer scalar arrays can be converted to a scalar index 以上这篇python之array赋值技巧...

    首先上一段程序:

    import numpy as np

    list_a = list(range(10))

    print("list_a: {}".format(list_a))

    array_a = np.array(list_a)

    print("array_a: {}".format(array_a))

    list_b = [True,False,True,True,False,False,True,False,True,False]

    print("list_b: {}".format(list_b))

    array_b = np.array(list_b)

    print("array_b: {}".format(array_b))

    mask = np.zeros(10,dtype=np.bool)

    print("mask: {}".format(mask))

    下面是这段程序的输出:

    list_a: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

    array_a: [0 1 2 3 4 5 6 7 8 9]

    list_b: [True, False, True, True, False, False, True, False, True, False]

    array_b: [ True False True True False False True False True False]

    mask: [False False False False False False False False False False]

    从输出可以看出list和array的不同之处是list是以逗号作为分隔符,而array是以空格作为分隔符。还有numpy中的zeros生成的是array。其实,list和array还有很多的不同之处,例如:

    list是Python中的普通列表对象,支持append和attend操作,没有shape属性;array是numpy数据库中的对象,不支持append和attend操作,具有shape属性。

    一个list中可以存放不同类型的数据,如int、float、str或者布尔型;而array中只能存放相同类型的数据。

    list不支持乘法操作;array支持乘法操作。

    而对于赋值操作,操作对象只能是array,而索引可以是array也可以是list:

    d = array_a[list_b]

    print("array_a[list_b]: {}".format(d))

    e = array_a[array_b]

    print("array_a[array_b]: {}".format(e))

    mask[list_b] = 1

    print("mask: {}".format(mask))

    输出如下:

    array_a[list_b]: [0 2 3 6 8]

    array_a[array_b]: [0 2 3 6 8]

    mask: [ True False True True False False True False True False]

    此番操作可以将array_a中对应b数组或列表True位上的元素组成一个新的数组。

    如果对列表进行如此赋值操作,即把程序中的array_a换成list_a,则会报错:

    d = list_a[list_b]

    TypeError: list indices must be integers or slices, not list

    e = list_a[array_b]

    TypeError: only integer scalar arrays can be converted to a scalar index

    以上这篇python之array赋值技巧分享就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

    本文标题: python之array赋值技巧分享

    本文地址: http://www.cppcns.com/jiaoben/python/289341.html

    展开全文
  • 我在Python2.6.5中有一个关于numpy的奇怪问题。我分配了一个numpy数组,然后将一个新变量等效到它。当我对新数组执行任何操作时,原始数组的值也会更改。为什么会这样?请参阅下面的示例。请启发我,因为我对Python...

    我在Python2.6.5中有一个关于numpy的奇怪问题。我分配了一个numpy数组,然后将一个新变量等效到它。当我对新数组执行任何操作时,原始数组的值也会更改。为什么会这样?请参阅下面的示例。请启发我,因为我对Python和一般编程还比较陌生。

    -苏扬

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21>>> import numpy as np

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

    >>> b = a

    >>> b

    array([[1, 2],

    [3, 4]])

    >>> c = a

    >>> c

    array([[1, 2],

    [3, 4]])

    >>> c[:,1] = c[:,1] + 5

    >>> c

    array([[1, 7],

    [3, 9]])

    >>> b

    array([[1, 7],

    [3, 9]])

    >>> a

    array([[1, 7],

    [3, 9]])

    这实际上根本不是问题,而是数组(和其他对象)在Python中的工作方式。

    请这样想:您在代码示例中创建的数组是一个位于内存中某个位置的对象。但是你不能在你的程序中通过告诉python在内存中的哪个位置去寻找它来使用它;你必须给它一个名字。当你写作时

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

    您正在创建数组并创建引用该数组的名称a。从那时起,python就知道a指的是"内存地址0x123674283"(或其他)。python运行时中有一个包含所有这些信息的内部表(如果我记得正确的话,称为"符号表"),所以在上面一行python代码运行之后,这个表将包含

    1

    2

    3...,

    'a' : 0x123674283,

    ...

    当您将一个变量的值赋给另一个变量时,例如

    1b = a

    python不会复制整个数组,因为如果它是一个大数组,则需要很长时间。相反,它会转到符号表,并将a的内存地址复制到b表中的新行。所以你最终

    1

    2

    3

    4

    5...,

    'a' : 0x123674283,

    ...,

    'b' : 0x123674283,

    ...

    你看,a和b实际上指的是内存中相同的位置,即相同的对象。您对其中一个所做的任何更改都将反映在另一个中,因为它们只是同一事物的两个名称。

    如果要实际复制数组,则必须调用一个方法来显式执行该操作。numpy数组有一个copy方法,您可以仅用于此目的。所以如果你写

    1b = a.copy()

    然后,python将首先实际复制数组——也就是说,它留出了一个新的内存区域,比如在地址0x123904381处,然后转到内存地址0x123674283,并将数组的所有值从内存的后一部分复制到前一部分。所以你在记忆中的两个不同的地方有相同的内容。

    1

    2

    3

    4

    5...,

    'a' : 0x123674283,

    ...,

    'b' : 0x123904381,

    ...

    现在,当您更改b的一个元素时,该更改不会出现在a中,因为a和b不再指计算机内存的同一部分。由于阵列数据有两个独立的副本,因此可以更改其中一个而不影响另一个。

    非常感谢您的精彩描述。不用说,这解决了问题,但我真的很感谢你花时间解释。你启发了我!

    "python不会复制整个数组,因为如果它是一个大数组,则需要很长的时间。"—我想说,它所花的时间更少,如果不以这种方式实现,则需要引入一些类似于单独指针类型的东西,这些东西会使事情变得复杂。

    简言之,变量赋值创建对现有对象的新引用。

    1

    2A = object # A points to object in memory

    B = A # B points to the same object

    展开全文
  • 我还建议你玩弄各种矩阵,以及它们的操作,比如替换一些元素、列和行,以及玩弄矩阵乘法,直到你掌握了它的窍门。 一些有用的命令包括numpy.random.rand(m, n) # will create a matrix of dimension m x n with ...

    我试着回答这个问题。所以在numpy中选择整行的正确语法是M[row_number, :]

    :部分只是以速记的方式选择整行。

    还有一种可能是使用m:,让它从某个索引转到末尾,其中m是一些已知的索引。

    如果您想在已知索引之间切换,那么我们将使用M[row_number, m:n]

    其中m<n

    只有当二维数组的行/列具有相同的维度时,才可以将它们等同起来。

    我不会给你你所需要的确切的代码,但希望现在你可以用上面的代码来解决这个问题。

    我还建议你玩弄各种矩阵,以及它们的操作,比如替换一些元素、列和行,以及玩弄矩阵乘法,直到你掌握了它的窍门。

    一些有用的命令包括numpy.random.rand(m, n) # will create a matrix of dimension m x n with pseudo-random numbers between 0 and 1

    numpy.random.rand(m, n) # will create a matrix of dimension m x n with pseudo-random numbers between -1 and 1

    numpy.eye(m) # will create a m x m identity matrix.

    numpy.ones((m, n))

    一定要通读这些文件。

    祝你好运!让你的Python之旅充满乐趣。:)

    展开全文
  • python矩阵指定元素的调用和赋值

    千次阅读 2020-06-06 10:43:58
    我刚刚学习python不久,有一些小小的收获记录一下。 我创建矩阵用的是A=np.mat(‘1,2,3;4,5,6;7,8,9’) 调用第i行第j列时,需要使用 而不是 但是在给矩阵赋值时,就要使用 例如把一个矩阵里的值赋值给另一个矩阵...

    我刚刚学习python不久,有一些小小的收获记录一下。

    我创建矩阵用的是A=np.mat(‘1,2,3;4,5,6;7,8,9’)
    调用第i行第j列时,需要使用
    正确调用值
    而不是
    错误调用
    但是在给矩阵赋值时,就要使用
    正确赋值
    例如把一个矩阵里的值赋值给另一个矩阵:
    注意调用和赋值的表达不同

    以上内容是用np.mat创建矩阵时的操作,个人理解不深,仅供参考
    np.array创建矩阵时应该有所不同。

    如果是array形式的矩阵,[a,b]和[a][b]就都可以

    展开全文
  • python 循环数据赋值实例python在数值赋值的时候可以采用数值内循环赋值,很方便如下a = [x for x in range(10)]这样a = [0,1,2,3,4,5,6,7,8,9]这里循环得到的是x,x是每次循环的值,这里就是0123456789如果需要用到...
  • Python矩阵运算主要使用numpy库。NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数索引的元素表格(通常是元素是数字)。因此对于随机查找来说,比python自带的list快很多。...
  • 对某个坐标元素赋值,按照以下两种方法是不同的 例子:生成3*2的矩阵,给定坐标位置赋值5 法一: // An highlighted block F=[[1]*2]*3 print(F) F[2][1]=5 print(F) 结果为: [[1, 1], [1, 1], [1, 1]] [[1, 5], ...
  • python 二维数组 元素赋值

    万次阅读 2018-04-26 11:25:15
    matrix = [[0] * 3] * 3此时matrix = [[0,2,0], [0,2,0], [0,2,0]]本意是把矩阵的第一行第二列赋值为 2, 但是最终结果是每一行的第二列都是 2出现这个结果的原因是:list * n—>n shallow copies of list ...
  • 广告关闭腾讯云11.11云上盛惠...python的numpy创造矩阵from numpy import matimport numpy asnpdata1=mat(zeros((3,3))); #创建一个3*3的零矩阵矩阵这里zeros函数的参数是一个tuple类型(3,3)data2=mat(ones((2,4))...
  • 广告关闭腾讯云11.11云上盛惠...python的numpy创造矩阵from numpy import matimport numpy asnpdata1=mat(zeros((3,3))); #创建一个3*3的零矩阵矩阵这里zeros函数的参数是一个tuple类型(3,3)data2=mat(ones((2,4))...
  • Numpy给矩阵元素统一赋值

    万次阅读 2018-08-24 17:21:39
    import numpy as np T = np.full((6, 6),3) print(T)
  • Python对象的赋值、浅复制、深复制 目录 Python对象的赋值、浅复制、深复制 目录 关于Python的‘一切皆对象’ Python中的数据类型 Python的‘一切皆对象’的具体说明 所以:Python如何对一个对象进行复制...
  • 鉴于最近复习线性代数计算量较大,且1800答案常常忽略一些逆阵、行列式的计算答案,故用python写出矩阵的简单计算程序,便于检查出错的步骤。 1、行列式 可自行更改阶数from numpy import * # 求行列式 ,建议:取...
  • python之array赋值技巧

    万次阅读 2018-09-10 21:27:17
    首先创建一个全零的一...如果我们想给列表a的某几个元素赋值1的话,可以这样处理: b = [1,3,5,7,9] a[b] = 1 print(a) 下面是输出: [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [0. 1. 0. 1. 0. 1. 0. 1. 0. 1. 0.]...
  • 下面程序要做的是,5次循环,每次循环给x加1,赋值给y,然后打印出来 x = tf.Variable(0.0) #返回一个op,表示给变量x加1的操作 x_plus_1 = tf.assign_add(x, 1) #control_dependencies的意义是,在执行wi...
  • 我们平常使用矩阵的时候,通常会发现矩阵元素不能够满足我们的需求,其中一种情况就是矩阵内的元素要么过大,要么过小,最好将矩阵元素限制在某个范围之内。 代码: import numpy as np b=np.arange(1,13)....
  • 原标题:问答 | python 矩阵输出问题这里是 AI 研习社,我们的问答版块已经正式推出了!欢迎大家来多多交流~http://ai.yanxishe.com/page/question(文末有福利哦)社长为你推荐来自 AI 研习社问答社区的精华问答。...
  • 第一次看见Python的运行感觉就让我想起了matlab,于是就上网嗖嗖他在矩阵方面的运算如何,如果不想安装Matlab那么大的软件,而你又只是想计算些矩阵python绝对够用!尤其在Linux下太方便了Python使用NumPy包完成了...
  • python赋值语句总是建立对象的引用值,而不是复制对象。因此,python 变量更像是指针,而不是数据存储区域
  • 背景:我需要把一个数组,由30个一级元素(代表一个月的30天),每个一级元素包含了3种二级元素,每一个二级元素包含了24种三级元素(代表一天的24个小时)。我一开始想着这么庞大的数组手动建立太麻烦了,写个循环...
  • 原博文2019-11-15 22:23 −问题产生:今天在编写...传统思路:用for循环来挑选符合条件的元素,这样十分浪费时间。代码示例:from sklearn.datasets.samples_generato...相关推荐2019-09-28 21:13 −Python python是...
  • #3×3的单位矩阵 a = np.eye(3) #获取主对角线元素的索引 row, col = np.diag_indices_from(a) #对主对角线进行赋值 a[row, col] = [3, 3, 3] #or a[row, col] = 3 print(a) #比较实用的是将某一个计算结果...
  • python 矩阵运算

    万次阅读 2016-07-31 16:59:41
    科学计算:Python VS. MATLAB(3)----线性代数基础  按:在介绍工具之前先对理论基础进行必要的回顾是很必要的。没有理论的基础,讲再多的应用都是空中楼阁。本文主要设涉及线性代数和矩阵论的基本内容。先回顾这...
  • 第一次刷leetcode的矩阵转置就遇到了奇奇怪挂的问题,QAQ 代码如下 b = [] a = [2] b = a a[0] = 3 print(a) print(b) 结果如下 问了计科小哥哥说是因为a和b都指向了同一块内存地址,所以a[0]=1,相当于是对该内存...
  • Python 矩阵相关

    2020-01-11 20:49:00
    Python矩阵运算主要使用numpy库。NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数索引的元素表格(通常是元素是数字)。因此对于随机查找来说,比python自带的list快很多。...
  • python矩阵运算

    2017-01-17 14:10:55
    python矩阵运算 2013年01月12日 ⁄ 综合 ⁄ 共 2679字 ⁄ 字号 小 中 大 ⁄ 评论关闭 第一次看见Python的运行感觉就让我想起了matlab,于是就上网嗖嗖他在矩阵方面的运算如何,如果不想安装...
  • Python 矩阵使用

    千次阅读 2014-05-16 11:18:37
    第一次看见Python的运行感觉就让我想起了matlab,于是就上网嗖嗖他在矩阵方面的运算如何,如果不想安装Matlab那么大的软件,而你又只是想计算些矩阵python绝对够用!尤其在Linux下太方便了 转自:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,316
精华内容 4,526
关键字:

python矩阵元素赋值

python 订阅