假设我有一个numpy数组a = [1 2 3 4 5 6 7 8],除了1,2和3到0之外,我想要更改其他所有内容。对于列表b = [1,2,3] a,尝试的aa不是在b= 0中,但是Python不接受这一点。目前,我正在使用如下的for循环:
c = a.unique()
for i in c:
if i not in b:
a[a == i] = 0
它的工作速度非常慢(在大小约为1000x1000x1000的3D数组中,大约有900个不同的值),并且不像numpy的最佳解决方案。有没有一种更理想的方法来解决这个问题呢?
我搞不懂为什么3D数组的NumPy嵌套循环比Cython慢。我写了一些琐碎的例子。
Python/NumPy版本:
import numpy as np
def my_func(a,b,c):
s=0
for z in xrange(401):
for y in xrange(401):
for x in xrange(401):
if a[z,y,x] == 0 and b[x,y,z] >= 0:
c[z,y,x] = 1
在下面的代码中,我一直试图使用x if-conditions创建一个三对角矩阵-conditions。
#!/usr/bin/env python
# import useful modules
import numpy as np
N=5
x=np.identity(N)
#x=np.zeros((N,N))
print x
# Construct NxN matrix
for i in range(N):
for j in range(N):
if i-j==1:
x[i][j]=1
elif j-1==1:
我编写了以下批处理文件:
setlocal EnableDelayedExpansion
set integer=0
for /f "delims=" %%a in ('where /R C:\ /F python.exe') do (
set Paths[!integer!]=%%a
set /A integer+=1
)
for %%b in (%Paths%) do (
echo %%b
)
我想要运行where /R C:\ /F python.exe,然后将输出的几条路径存储到一个数组中,我需要这样做,因为我需要稍后处理这些路
from numpy import linalg
from numpy import matmul
M = [[2,1],[1,3]]
b = [[3],[-1]
Mb = []
nrows = 2
ncols = 2
for i in range(0,nrows):
sum = 0
for j in range(0,ncols):
sum = sum + M[i,j] * b[j]
Mb[?] = ?
print(Mb)
#这样做的目的是用一个循环来乘矩阵。在尝试运行时,我一直得到错误(python列表索引必须是整数而不是元组)。我
我尝试在Python中通过用2D数组填充来形成3D数组。N是一个根据正在读取的文件而变化的数字。矩阵正在形成为3D,但似乎只有1个‘层’,而我期望它有N个层。似乎N个“层”没有传递到形成的数组中。
import numpy as np
#'rot' is a 3D matrix of shape (N,3,3)
a=np.array(rot[:,0,0])
b=np.array(rot[:,0,1])
c=np.array(rot[:,0,2])
d=np.array(rot[:,1,0])
e=np.array(rot[:,1,1])
f=np.array(rot[:,1,
我是python的新手,索引对我来说仍然很困难。我试图使用迭代操作绘制一些值,但它似乎不起作用,并给了我上面的错误。请帮帮我。谢谢。
我的代码:
import numpy as np
import matplotlib.pyplot as mp
e = np.exp
z = np.arange(1000)
for i in z:
while True:
H_2 = 0.58*e(-(z[i]/81)**2)
i += 1
mp.scatter(H_2 , z, c = 'r')
mp.show()
所以,我在.flo上阅读,就像我在做一些扭曲。似乎我对Python2.7和numpy版本1.11.2没有异议,但是当我升级到Python3.6和numpy版本1.12.0时。
但是在转换过程中,我知道得到了行only integer scalar arrays can be converted to a scalar index的错误data2d = np.fromfile(f, np.float32, count=2 * w * h)。
import numpy as np
def read_flow(filename):
f = open(filename, '
我有一个3D数组,它是一个遮罩。另外,我有一些索引来编码一些值应该保存在哪里(数组位置)。 一切似乎都很正常,除了在将值分配到所需位置后输出矩阵仍然是空的。 我看不到我在这里遗漏了什么。我也尝试过numpy.put,但没有成功。 import numpy as np
# Initialize output matrix (here the results will be stored)
results = np.zeros((67, 67, 45))
# define the mask - where to put the calculated values in the results
我正在使用parallel=True将一些奇怪的代码转换为Numba兼容。它有一个有问题的数组分配,我不太清楚如何以numba能够处理的方式重写。我试着破译错误的含义,但我完全迷失了方向。唯一清楚的是它不喜欢这一行:Averaging_price_3D[leg, :, expired_loc] = last_non_expired_values.T错误很长,包括在这里供参考:
TypingError: No implementation of function Function(<built-in function setitem>) found for signature:
s
我在python中得到了一种数组,我希望从所有的int中减去一个。例如:
arr = [[2,3,4],
[5,6,7],
[8,9,10]]
#this should become this:
arr = [[1,2,3],
[4,5,6],
[7,8,9]]
有几种我尝试过的方法
for i in arr:
for j in i:
j-=1 #doesn't work!
我知道使用numpy会更容易,但这是我正在处理的一个大型项目,所以实现numpy可能需要几个小时,甚至更多。谢谢!