我有一个2D数组的字典,我想用它的平均值来规范每个2D数组的每一行。
我有:
for key, value in sorted(baseline.items()):
for i in baseline[str(key)]:
i = i / np.mean(i)
其中:
baseline是一个dictbaseline[str(key)]是一个2D numpy arrayi是一个一维数组
print(i)会产生适当更新的值,但是跨baseline.items()的各个行不会被更新。
我遗漏了什么?
我制作了一个三维数组,由数字(0~4)组成。我想要的是将3D数组保存为一堆2D图像(如果可能,保存*.tiff文件)。我该怎么做?
import numpy as np
a = np.random.randint(0,5, size=(100,100,100))
a = a.astype('int8')
我想要创建一个3d numpy数组,使用2d numpy数组作为循环,我尝试了许多不同的方法从2d创建3d数组,但是每次都会给我带来错误。这就是我所做的,端点数组应该有一个(10,3,3)的维度。
#this is a sample code
arr=[]
for i in range(10):
a=np.random.rand(3,3)
arr=np.stack(a,arr)
#arr=np.append(arr,a)
#arr=np.array([arr,a])
#arr[i]=a
我有一个2d的numpy数组X = (xrows, xcols),我希望在数组的每一行组合上应用点积来获得另一个P = (xrow, xrow)形状的数组。
代码如下所示:
P = np.zeros((xrow, xrow))
for i in range(xrow):
for j in range(xrow):
P[i, j] = numpy.dot(X[i], X[j])
如果数组X很小,但是需要花费大量的时间来处理巨大的X,这是很好的。有没有办法让它更快,或者做得更快,使它更快?
我想知道在动态创建2d数组时分配了多少大小 假设我在c++中动态创建一个一维数组,结果如下所示 int* p = new int[10]; 这意味着堆内存中有40字节,栈内存中有8字节(根据我的编译器),但我很困惑,如果我将2d数组设为(对于10*10 2d数组),将分配多少内存 int** p = new int*[10];
for(int i = 0; i < 10; i++) {
p[i] = new int[10];
} 我的堆栈和堆中将分配多少内存,它在堆栈中是80字节,在堆中是400字节或其他什么
可以用PyAV直接将视频读入3D Numpy吗?目前,我正在遍历每一帧:
i = 0
container = av.open('myvideo.avi')
for frame in container.decode(video=0):
if i == 0: V = np.array(frame.to_ndarray(format='gray'))
else: V = np.dstack((V, np.array(frame.to_ndarray(format='gray'))))
i += 1
第一帧定义了一个2D Num
我有一个一维numpy数组(y)和2D numpy数组(x),我计算y与x中的每一列之间的相关性如下:
import numpy as np
from scipy.stats import pearsonr
rng = np.random.default_rng(seed=42)
x = rng.random((3, 3))
y = rng.random(3)
for i in range(x.shape[1]):
print( pearsonr(x[:, i], y)[0] )
我想知道如何在不使用For循环的情况下获得相关值。有办法吗?
我有一个将值转换为列表(或数组)的函数。如何使用它将N-D数组转换为另一个(N+1)-D数组?下面的代码需要生成一个列表,然后转换为。我想知道是否有更有效的方法(也许是的构造函数?)。 # # assume we have a function foo
# def foo(val):
# return [val*10, val*20 - 7]
# # how can we use this function to convert a N-D array to another (N+1)-D array?
# # here is my tried
import numpy as n
下面的代码在python中检查对象像素的周围像素。
self.surr = [None, None, None, None, None, None, None, None]
for i in range(9):
#for x in range(-1, 2):
#for y in range(-1, 2):
if i != 5:
x = i % 3 - 2
y = int((i % 3) / 3) - 1
if x == 0 and y == 0:
pass
els
如何用numpy中的n个矩阵(或2d数组)迭代所有2^(n^2)二进制n?我会说:
for M in ....:
您必须使用itertools.product([0,1], repeat = n**2)然后转换为2d numpy数组吗?
这段代码将给我一个随机的2d二进制矩阵,但这不是我所需要的。
np.random.randint(2, size=(n,n))
我正在尝试填充一个2D的numpy数组。根据我的经验,下面的内容不会随着数组大小的增加而增加。
x=np.array([2,3,4])
y=np.array([1,3,9,13])
mat=np.zeros((x.size,y.size))
for i in range(nx):
for j in range(ny):
if x[i] > y[j]:
mat[i,j] = 1
else:
mat[i,j] = -1
理想情况下,我想使用列表理解,就像它是简单的,如果它只是一维
mat=np.asarray([foo(x_) for x_ in
虽然有一些问题和答案接近我所要寻找的内容,但我想知道是否没有一个更优雅的解决方案来解决这个具体问题:我有一个numpy (2D)数组,并希望逐行打印它和前面的行号-当然还有很好的格式化。
这段代码可以直接打印,但不需要格式化:
import numpy as np
A = np.zeros((2,3))
for i in range(2):
print i, A[i]
我还可以通过在每一行中重新构建格式化字符串来生成格式化输出:
for i in range(2):
print "%4i "%(i)+" ".join(["%6.2f