我正在使用某人的代码,c++其中由python. 我无法进入源代码并对其进行修改。当用 调用时python,它会打印一些东西,我想将此输出分配给一个变量。我怎样才能做到这一点?
def print_something(string):
print(string)
x = print_something('foo')
Run Code Online (Sandbox Code Playgroud)
print(type(x))
Run Code Online (Sandbox Code Playgroud)
Out[5]: NoneType
Run Code Online (Sandbox Code Playgroud)
理想情况下,此代码将分配'foo'给x作为字符串。
Fashion MNIST 数据集在 Pytorch 中的实现非常奇怪。我想做类似的事情:
X, y = FashionMNIST
Run Code Online (Sandbox Code Playgroud)
但实际上,情况要复杂一些。这就是我所拥有的:
from torchvision.datasets import FashionMNIST
train = FashionMNIST(root='.', download=True, train=True)
print(train)
Run Code Online (Sandbox Code Playgroud)
输出:
Dataset FashionMNIST
Number of datapoints: 60000
Root location: c:/users/nicolas/documents/data/fashionmnist
Split: Train
Run Code Online (Sandbox Code Playgroud)
什么一个观察的样子:
print(train[0])
Run Code Online (Sandbox Code Playgroud)
(<PIL.Image.Image image mode=L size=28x28 at 0x20868074780>, 9)
Run Code Online (Sandbox Code Playgroud)
我只能做一次观察。
X, y = train[0]
Run Code Online (Sandbox Code Playgroud)
那么如何分离输入和目标呢?
我是 Keras 的新手,我正在尝试构建一个供个人使用/未来学习的模型。我刚开始使用 python,我想出了这段代码(在视频和教程的帮助下)。我有 16324 个实例的数据,每个实例由 18 个特征和 1 个因变量组成。
import pandas as pd
import os
import time
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, LSTM, BatchNormalization
from tensorflow.keras.callbacks import TensorBoard, ModelCheckpoint
EPOCHS = 10
BATCH_SIZE = 64
NAME = f"-TEST-{int(time.time())}"
df = pd.read_csv("EntryData.csv", names=['1SH5', '1SHA', '1SA5', '1SAA', '1WH5', '1WHA', '2SA5', '2SAA', '2SH5', '2SHA', '2WA5', '2WAA', '3R1', '3R2', '3R3', '3R4', '3R5', '3R6', 'Target'])
df_val = 14554
validation_df = df[df.index > df_val]
df = df[df.index …Run Code Online (Sandbox Code Playgroud) 每当我使用时parser.parse_args(),内核就会崩溃。例如:
import argparse
import numpy as np
parser = argparse.ArgumentParser()
parser.add_argument("--return_counts", type=bool, default=True)
opt = parser.parse_args()
arr = np.random.randint(0, 10, 100)
Run Code Online (Sandbox Code Playgroud)
它给出了这个错误:
用法:pydevconsole.py [-h] [--return_counts RETURN_COUNTS]
pydevconsole.py:错误:无法识别的参数:--mode=client --port=52085
但是,如果我使用parser.parse_known_args(),它会起作用。
import argparse
import numpy as np
parser = argparse.ArgumentParser()
parser.add_argument("--return_counts", type=bool, default=True)
opt, unknown = parser.parse_known_args()
arr = np.random.randint(0, 10, 100)
Run Code Online (Sandbox Code Playgroud)
它有效,并opt给出了这个:
print(opt)
Out[3]: Namespace(return_counts=True)
Run Code Online (Sandbox Code Playgroud)
并unknown给出了这个:
Out[4]: ['--mode=client', '--port=52162']
Run Code Online (Sandbox Code Playgroud)
有人可以解释这背后的巫术吗?
我有一个简单的用例:
我有 3 个变量,x、y 和 z。
我想将 z 绘制为 x 和 y 的函数,因此是 3D 绘图。
import random
class Unique_Key(object):
def __init__(self):
self.uni_k =random.randint(1, 1000000)
unique_key_obj1=Unique_Key()
print(f"First Record {unique_key_obj1.uni_k}")
unique_key_obj=Unique_Key()
print(f"Second Record {unique_key_obj.uni_k}")
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我如何使unique_key_obj1对象的值与对象的值相同unique_key_obj吗?谢谢!
我有两个清单
a = [1,2,3]
b = []
Run Code Online (Sandbox Code Playgroud)
如果满足某个条件,我想从列表 a 中移动一个元素。
a = [1,3]
b = [2]
Run Code Online (Sandbox Code Playgroud)
下面的代码显示了一个示例,但是,我想在单个循环中执行此操作。我如何更有效地做到这一点?
a = [1,2,3]
b = []
pop_list = []
for i in range(len(a)):
if a[i] == 2:
print("pop:", a[i])
pop_list.append(i)
for i in range(len(pop_list)):
b.append(a.pop(pop_list[i]))
# Reset pop_list
pop_list=[]
Run Code Online (Sandbox Code Playgroud)
理想情况下,我不会生成新列表 b。
Python 中的一切都是有原因的。搭载Python的所有系统都依赖于类似50的内置功能,其中大部分是非常有用的,独特的,如format(),len(),list(),或range()。我不明白为什么enumerate()存在。
它已在PEP 279 (2002) 中引入并保留至今。我真的不明白它为什么存在,因为它可以使用更多 2-3 个字符的其他更重要的内置函数来完成。来自Python 文档:
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
Run Code Online (Sandbox Code Playgroud)
for i in enumerate(seasons):
print(i)
Run Code Online (Sandbox Code Playgroud)
使用更重要的内置函数的实现是这样的:
for i in zip(range(len(seasons)), seasons):
print(i)
Run Code Online (Sandbox Code Playgroud)
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
Run Code Online (Sandbox Code Playgroud)
这两者是相同的,我们都知道它们的重要性zip()和重要性range()。那么为什么要添加一个内置函数,除了这两个函数之外,它似乎没有任何价值?
在Python Docs 中,这里相当于enumerate():
def enumerate(sequence, start=0):
n = start
for elem in sequence:
yield n, elem
n += 1 …Run Code Online (Sandbox Code Playgroud)