• 解决方案 In Python, if the input is a numpy array, you can use np.lib.pad to pad zeros around it - import numpy as np A = np.array([[1, 2 ],[2, 3]]) # Input A_new = np.lib.pad(A, ((0,1),(0,2)), '...


I have an array of a size 2 x 2 and I want to change the size to 3 x 4.
A = [[1 2 ],[2 3]]
A_new = [[1 2 0 0],[2 3 0 0],[0 0 0 0]]
I tried 3 shape but it didn't and append can only append row, not column. I don't want to iterate through each row to add the column.
Is there any vectorized way to do this like that of in MATLAB: A(:,3:4) = 0; and A(3,:) = 0; this converted the A from 2 x 2 to 3 x 4. I was thinking is there a similar way in python?
解决方案
In Python, if the input is a numpy array, you can use np.lib.pad to pad zeros around it -
import numpy as np
A = np.array([[1, 2 ],[2, 3]]) # Input
A_new = np.lib.pad(A, ((0,1),(0,2)), 'constant', constant_values=(0)) # Output
Sample run -
In [7]: A # Input: A numpy array
Out[7]:
array([[1, 2],
[2, 3]])
In [8]: np.lib.pad(A, ((0,1),(0,2)), 'constant', constant_values=(0))
Out[8]:
array([[1, 2, 0, 0],
[2, 3, 0, 0],
[0, 0, 0, 0]]) # Zero padded numpy array
If you don't want to do the math of how many zeros to pad, you can let the code do it for you given the output array size -
In [29]: A
Out[29]:
array([[1, 2],
[2, 3]])
In [30]: new_shape = (3,4)
In [31]: shape_diff = np.array(new_shape) - np.array(A.shape)
'constant', constant_values=(0))
Out[32]:
array([[1, 2, 0, 0],
[2, 3, 0, 0],
[0, 0, 0, 0]])
Or, you can start off with a zero initialized output array and then put back those input elements from A -
In [38]: A
Out[38]:
array([[1, 2],
[2, 3]])
In [39]: A_new = np.zeros(new_shape,dtype = A.dtype)
In [40]: A_new[0:A.shape[0],0:A.shape[1]] = A
In [41]: A_new
Out[41]:
array([[1, 2, 0, 0],
[2, 3, 0, 0],
[0, 0, 0, 0]])
In MATLAB, you can use padarray -
Sample run -
>> A
A =
1 2
2 3
A_new =
1 2 0 0
2 3 0 0
0 0 0 0

展开全文
• python - NumPy数组初始化（填充相同的值）我需要创建一个长度为zeros的NumPy数组，其中每个元素都是ones。还有什么比：a = empty(n)for i in range(n):a[i] = v我知道zeros和ones适用于v = 0,1。我可以使用v * ones...
python - NumPy数组初始化（填充相同的值）
我需要创建一个长度为zeros的NumPy数组，其中每个元素都是ones。
还有什么比：
a = empty(n)
for i in range(n):
a[i] = v
我知道zeros和ones适用于v = 0,1。我可以使用v * ones(n)，但是当v是None时它不会工作，而且也会慢得多。
7个解决方案
NumPy 1.8引入了empty()，这是一个比empty()更直接的方法，接着是fill()，用于创建一个填充了某个值的数组：
>>> np.full((3, 5), 7)
array([[ 7., 7., 7., 7., 7.],
[ 7., 7., 7., 7., 7.],
[ 7., 7., 7., 7., 7.]])
>>> np.full((3, 5), 7, dtype=int)
array([[7, 7, 7, 7, 7],
[7, 7, 7, 7, 7],
[7, 7, 7, 7, 7]])
这可以说是创建一个充满某些值的数组的方式，因为它明确地描述了正在实现的内容（原则上它可以非常高效，因为它执行一个非常特定的任务）。
更新为Numpy 1.7.0 :(给@Rolf Bartstra的帽子提示。）
a=np.empty(n); a.fill(5)是最快的。
按降序速度顺序：
%timeit a=np.empty(1e4); a.fill(5)
100000 loops, best of 3: 5.85 us per loop
%timeit a=np.empty(1e4); a[:]=5
100000 loops, best of 3: 7.15 us per loop
%timeit a=np.ones(1e4)*5
10000 loops, best of 3: 22.9 us per loop
%timeit a=np.repeat(5,(1e4))
10000 loops, best of 3: 81.7 us per loop
%timeit a=np.tile(5,[1e4])
10000 loops, best of 3: 82.9 us per loop
我相信a[:] = v是最快的方法。
a = np.empty(10)
a.fill(7)
你也应该总是避免像你在你的例子中那样进行迭代。 一个简单的a[:] = v将完成您的迭代使用numpy广播所做的事情。
显然，不仅绝对速度而且速度顺序（由用户1579844报告）取决于机器; 这是我发现的：
a=np.empty(1e4); a.fill(5)是最快的;
按降序速度顺序：
timeit a=np.empty(1e4); a.fill(5)
# 100000 loops, best of 3: 10.2 us per loop
timeit a=np.empty(1e4); a[:]=5
# 100000 loops, best of 3: 16.9 us per loop
timeit a=np.ones(1e4)*5
# 100000 loops, best of 3: 32.2 us per loop
timeit a=np.tile(5,[1e4])
# 10000 loops, best of 3: 90.9 us per loop
timeit a=np.repeat(5,(1e4))
# 10000 loops, best of 3: 98.3 us per loop
timeit a=np.array([5]*int(1e4))
# 1000 loops, best of 3: 1.69 ms per loop (slowest BY FAR!)
所以，试着找出并使用你平台上最快的东西。
我有
numpy.array(n * [value])
记住，但显然这比其他足够大的建议要慢empty。
这里与perfplot（我的宠物项目）进行了全面比较。

两个empty替代品仍然是最快的（使用NumPy 1.12.1）。 full赶上大型阵列。
生成图的代码：
import numpy as np
import perfplot
def empty_fill(n):
a = np.empty(n)
a.fill(3.14)
return a
def empty_colon(n):
a = np.empty(n)
a[:] = 3.14
return a
def ones_times(n):
return 3.14 * np.ones(n)
def repeat(n):
return np.repeat(3.14, (n))
def tile(n):
return np.repeat(3.14, [n])
def full(n):
return np.full((n), 3.14)
def list_to_array(n):
return np.array(n * [3.14])
perfplot.show(
setup=lambda n: n,
kernels=[
empty_fill, empty_colon, ones_times, repeat, tile, full, list_to_array
],
n_range=[2**k for k in range(27)],
xlabel='len(a)',
logx=True,
logy=True,
)
你可以使用tile，例如：
v = 7
rows = 3
cols = 5
a = numpy.tile(v, (rows,cols))
a
Out[1]:
array([[7, 7, 7, 7, 7],
[7, 7, 7, 7, 7],
[7, 7, 7, 7, 7]])
虽然tile意在“平铺”一个数组（而不是标量，如本例所示），但它可以完成任务，创建任意大小和尺寸的预填充数组。
没有numpy
>>>[2]*3
[2, 2, 2]
Mr.Green answered 2019-04-13T03:16:05Z
展开全文
• 初始化一个大小为 200 元素全为 0 的一维数组 lst = [0] * 200
初始化一个大小为 200 元素全为 0 的一维数组 lst = [0] * 200
展开全文
• &gt;&gt;&gt; lst = [None] * 5 &gt;&gt;&gt; lst [None, None, None, None, None]

>>> lst = [None] * 5
>>> lst
[None, None, None, None, None]

展开全文
• 上之前Python NumPy基础介绍中，我们使用嵌套Python列表来初始化一个numpy数组，并使用方括号来访问元素，如下。ndarray 数组除了可以使用底层 numpy.array 构造器来创建外，也可以通过以下几种方式来创建。numpy....
• java数组 初始化 具有使用C或FORTRAN等语言进行编程的经验的人熟悉数组的概念。 它们基本上是一个连续的内存块，每个位置都是某种类型：整数，浮点数或您所拥有的。 Java中的情况与此类似，但有一些额外的折痕。 ...
• 以上这篇python 初始化一个定长的数组实例就是小编分享给大家的全部内容了，希望能给大家一个参考，也希望大家多多支持软件开发网。 您可能感兴趣的文章:Python中生成一个指定长度的随机字符串实现示例python实现...
• Python遍历numpy数组的实例在用python进行图像处理时，有时需要遍历numpy数组，下面是遍历数组的方法：[rows, cols] = num.shapefor i in range(rows - 1):for j in range(cols-1):print(num[j, i])以上这篇Python...
• 初始化一个列表然后要修改其中的值的话，就要定义长度了。例：拓展资料设计定位Python的设计哲学是“优雅”、“明确”、“简单”。因此，Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是...
• ndarray.shape：数组每一维的大小 ndarray.size：数组中全部元素的数量 ndarray.dtype：数组中元素的类型（numpy.int32, numpy.int16, and numpy.float64等） ndarray.itemsize：每个元素占几个字节 例子： >
• # 有时候我们提前知道了一个数组大小，需要给每个元素赋值，此时append好像不管用。我们需要定义一个定# # 长的数组python中代码如下： ​ b = [0 for _ in range(10)] #也可以b = [0]*10 for i in range(10)...
• 我想定义一个没有初始化长度的二维数组，如下所示： matrix = 但它不起作用..... 我已经尝试了下面的代码，但它也是错误的： matrix = 错误： traceback ... indexerror: list index out of range 我哪里有问题？......
• # -*- coding: utf-8 -*- ...a = numpy.empty(x, dtype=object)#x是数组的长度 微信搜一搜【梓莘】或扫描下方二维码交个朋友共同进步。文章持续更新中。目前在整理python百战学习笔记，期待后续更多的更新哦。 ...
• 前言 其实原生的Python是没有数组的（参考Java数组)，只有元组(tuple)和列表(list)，列表和java的List很像，可以随时增删元素，而元组相当于将列表只读化，不能增删内容...1.1 列表的初始化 创建一个空的列表 list_...
• Python 列表list 数组array
• Python初始化一个5 x 3每项为0的数组，最好方法是： multilist=[[0forcolinrange(5)]forrowinrange(3)] 我们知道，为了初始化一个一维数组，我们可以这样做： alist=[0]*5 没错，那我们初始化一个二维数组...
• ## [558]python3之数组(array)

万次阅读 多人点赞 2019-03-13 18:41:22
https://docs.python.org/3.5/library/array.html#module-array 当我们需要1000万个浮点数的时候，数组（array）的效率要比列表（list）要高得多，因为数组在背后存的并不是float对象，而是数字的机器翻译，也就是...
• 一.基础： Numpy的主要数据类型是...ndarray.shape：数组每一维的大小 ndarray.size：数组中全部元素的数量 ndarray.dtype：数组中元素的类型（numpy.int32, numpy.int16, and numpy.float64等） ndarray.itemsize...
• python3 数组(列表)初始化 1. 初始化一个定长的数组 有时需要预定义一个定长的数组，并给每个元素赋值 方法1： python3中代码如下： 1 2 3 4 #coding=utf-8 item='PythonTab' ...
• 1. 在python学习的过程中，经常要创建数组，对数组里面的元素进行操作，所以我们需要掌握python中对于数组操作的基本语法 2. 下面是一些常用的数组创建、赋值的一些语法： 其中需要使用到python中的numpy包，我们...
• 今天学习了在python中自己构造一个数组的类，并且以此构造出自己的二维数组。 首先讲解一下python中的列表，为什么python中的列表可以用append方法一直增加元素呢？不可能申请一个特别大的空间的，这样太浪费了。...
• #coding=utf-8import numpy as npimage =[[0 for col in range(5)] for row in range(3)]a = np...0 是 数组初始化的值 ；数组较大 时候 效率较慢。new_image =np.zeros((3,5))#第二种方法是直接定义一个数组 数组的...
• ## Python初始化列表

万次阅读 2019-04-29 18:17:49
Python初始化列表 下面我们就来介绍在Python中初始化列表（我们创建大小为1000并使用零初始化的列表）的一些方法。 1）方法一：使用for循环和append()函数 arr = [] for i in range(1000): arr.append(0) 2）方法...
• 1.Python初始化指定长度的数组 1.1初始化一维数组 方法1： # 0为数组内初始数据，10位数据长度 list = [0]*10   # 结果：[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 方法2： list2 = [0 for i in range(10)] # 结果...
• 在许多编程语言中（Java，COBOL，BASIC），多维数组或者矩阵是（限定各维度的大小）预先定义好的。而在Python中，其实现更简单一些。 如果需要处理更加复杂的情形，可能需要使用Python的数学模块包NumPy，链接地址：...
• Numpy（Python）创建数组方式 首先我们要知道为什么要使用numpy。 python是一门高级汇编语言，标准的Python中用列表(list)保存一组值，可以当作数组使用。但由于列表的元素可以是任何对象，因此列表中保存的是对象的...
• ## python数组_Python数组

千次阅读 2020-07-14 13:54:52
python数组Python Array contains a sequence of data. In python programming, there is no exclusive array object because we can perform all the array operations using list. Today we will learn about ...
• 广告关闭腾讯云11.11云上盛惠 ，精选热门产品助力上云，云服务器首年88元起，买的越多返的越多，最高返5000元！腾讯云 api 全新升级3.0 ，该... 这里针对 python api 调用方式进行简单说明。 现已支持云服务器（cv...
• 文章目录低层次数组引用数组Python中的紧凑数组动态数组和摊销实现动态数组Python序列类型的效率Python的列表类Python的字符串类 低层次数组 计算机主存由位信息组成，多位组成更大的单元，例如一个字节相当于8位。...
• ## python之多维数组（一）

万次阅读 多人点赞 2019-08-01 14:17:58
多维数组ndarray创建方式array()函数empty()函数zeros()函数ones()函数asarray()函数arange()函数linspace()函数logspace()函数random()函数ndarray对象属性shapendimitemsizesizedtype Numpy中定义的最终对象是...

...

python 订阅