我刚刚开始使用 numpy..
得到下面的 np 表,想计算每个单元格占列总数的百分比。
data = np.array([[7,16,17], [12,11,3]])
headers = ["Grundskola", "Gymn", "Akademisk"]
# tabulate data
table = tabulate(data, headers, tablefmt="github")
# output
print(table)
| Grundskola | Gymn | Akademisk |
|--------------|--------|-------------|
| 7 | 16 | 17 |
| 12 | 11 | 3 |
Run Code Online (Sandbox Code Playgroud)
到:
| Grundskola | Gymn | Akademisk |
|--------------|--------|-------------|
| 39%| 59% | 85% |
| 61%| 41% | 15% |
Run Code Online (Sandbox Code Playgroud)
我知道 np.sum(data2, axis=0/1) 会给我总数,但我如何使用它来计算数组。
数组的大小可以不同...
我有一个numpy.ndarray形状(1,28,28),值是 [0,1] 范围内的浮点。我的最终目标是将数组保存为 png 图像。
即使在转置数组并将其与 255 相乘以获得 uint 值之后,它仍然会抛出错误*** TypeError: Cannot handle this data type: (1, 1, 1), |u1。
我正在使用以下代码:
im = Image.fromarray((img.transpose(1,2,0) * 255).astype(np.uint8))
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。
PS我已经在这里研究过这个建议。
我正在尝试使用 setattr 将属性添加到 Numpy ndarray,但出现错误:
import numpy as np
x = np.array([1, 2, 4])
setattr(x, 'new_attr', 1)
Run Code Online (Sandbox Code Playgroud)
AttributeError:numpy.ndarray 对象没有属性 new_attr
如何向 Numpy ndarray 添加新属性?
回溯错误
Traceback (most recent call last):
File "C:\Users\trial2\trial.py", line 55, in <module>
image_stack(image)
File "C:\Users\trial2\trial.py", line 41, in image_stack
transposed_axes = np.transpose(img, axes=concat)
File "<__array_function__ internals>", line 5, in transpose
File "C:\Users\trial2\venv\lib\site-packages\numpy\core\fromnumeric.py", line 660, in transpose
return _wrapfunc(a, 'transpose', axes)
File "C:\Users\trial2\venv\lib\site-packages\numpy\core\fromnumeric.py", line 57, in _wrapfunc
return bound(*args, **kwds)
ValueError: axes don't match array
Run Code Online (Sandbox Code Playgroud)
回溯错误也存在,如果这有助于解决问题,我需要为已作为参数输入到函数中的图像计算新的转置轴。该函数获取图像的形状,然后计算图像的转置轴。问题发生在将图像数组转置到新轴时。我无法弄清楚为什么它不起作用的问题。我是否需要将 concat 变量转换为元组才能正常工作,还是其他原因导致了问题
def image_stack(image):
img_shape = cv2.imread(image).shape
img = np.asarray(img_shape)
print(type(img))
n = len(img)
val_1 = list(range(1, n - 1, 2))
val_2 = list(range(0, n …Run Code Online (Sandbox Code Playgroud) 假设我们在下面有一个一维数组
arr = np.array([a,b,c])
Run Code Online (Sandbox Code Playgroud)
我需要做的第一件事是制作所有元素的产品,即
[ab,ac,bc]
Run Code Online (Sandbox Code Playgroud)
然后用这个元素构造一个二维三角形数组
[
[a,ab,ac],
[0,b,bc],
[0,0,c]
]
Run Code Online (Sandbox Code Playgroud) 我有一个矩阵x,其3 x 3维度和向量w是3,:
x = np.array([[1, 2, 1],
[3, 2 ,1],
[1, 2, 2]])
w = np.array([0.3, 0.4, 0.3])
Run Code Online (Sandbox Code Playgroud)
我需要生成另一个向量y,该向量对 x. 的每一列x由 中的相应值加权w。像这样的东西:
for y[0],它应该寻找X[0] => [1, 2, 1]
对w按其在 X 中的值分组的列的权重 (in )求和:
0.3 + 0.3 = 0.6假设我有一个这样X的形状数组(6, 2):
import numpy as np
X = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]])
Run Code Online (Sandbox Code Playgroud)
我想将它重塑为一个 shape 数组(3, 2, 2),所以我这样做了:
X.reshape(3, 2, 2)
Run Code Online (Sandbox Code Playgroud)
并得到:
array([[[ 1, 2],
[ 3, 4]],
[[ 5, 6],
[ 7, 8]],
[[ 9, 10],
[11, 12]]])
Run Code Online (Sandbox Code Playgroud)
但是,我需要不同格式的数据。准确地说,我想结束:
array([[[ 1, 2],
[ 7, 8]],
[[ 3, 4],
[ 9, 10]],
[[ 5, 6],
[11, 12]]])
Run Code Online (Sandbox Code Playgroud)
我应该用reshape这个还是别的什么?在 Numpy 中执行此操作的最佳方法是什么?
我有一个这样的 np.arrray:
[[ 1.3 , 2.7 , 0.5 , NaN , NaN],
[ 2.0 , 8.9 , 2.5 , 5.6 , 3.5],
[ 0.6 , 3.4 , 9.5 , 7.4 , NaN]]
Run Code Online (Sandbox Code Playgroud)
还有一个函数来计算两行之间的距离:
def nan_manhattan(X, Y):
nan_diff = np.absolute(X - Y)
length = nan_diff.size
return np.nansum(nan_diff) * length / (length - np.isnan(nan_diff).sum())
Run Code Online (Sandbox Code Playgroud)
我需要所有成对距离,而且我不想使用循环。我怎么做?
pyhtorch我正在使用和运行训练代码numpy。
这是plot_example函数:
def plot_example(low_res_folder, gen):
files=os.listdir(low_res_folder)
gen.eval()
for file in files:
image=Image.open("test_images/" + file)
with torch.no_grad():
upscaled_img=gen(
config1.both_transform(image=np.asarray(image))["image"]
.unsqueeze(0)
.to(config1.DEVICE)
)
save_image(upscaled_img * 0.5 + 0.5, f"saved/{file}")
gen.train()
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是该unsqueeze属性引发错误:
File "E:\Downloads\esrgan-tf2-masteren\modules\train1.py", line 58, in train_fn
plot_example("test_images/", gen)
File "E:\Downloads\esrgan-tf2-masteren\modules\utils1.py", line 46, in plot_example
config1.both_transform(image=np.asarray(image))["image"]
AttributeError: 'numpy.ndarray' object has no attribute 'unsqueeze'
Run Code Online (Sandbox Code Playgroud)
该网络是GAN网络,gen()代表生成器。
我正在合并 2 个 dfs,df1 和 df2,虽然不匹配,但结果将为 Nan,但我需要它默认为 0。
df1 = pd.merge(df1, df2, left_on='MortTab', right_on='MortTab', how='left',suffixes=(' ', ''))
Run Code Online (Sandbox Code Playgroud)
现在我用这种方式将Nan转换为0:
for i in ['col1','col2','col3']: #columns that I want to check the values are NaN or not
df1[i] = np.where(df1[i].isnull(), 0, df_ia[i]) #if it's NaN, convert it to 0,or keep the same
Run Code Online (Sandbox Code Playgroud)
我手动循环每个列值来检查,如果该值是 NaN ,如果是,将其转换为 0 ,如果否保持不变。
有更好的方法吗?
numpy-ndarray ×10
numpy ×9
python ×7
python-3.x ×4
arrays ×3
dataframe ×1
image ×1
numpy-einsum ×1
opencv ×1
pandas ×1
percentage ×1
pytorch ×1
transpose ×1