如何通过指定要包含哪些行和列(分别由和表示)来创建B作为 NumPy array 的子数组的NumPy 数组?Axy
例如:
A = numpy.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]])
x = [0, 2]
y = [1, 3, 4]
B = # Do something .....
Run Code Online (Sandbox Code Playgroud)
应该给出输出:
>>> B
array([[2, 4, 5], [12, 14, 15]])
Run Code Online (Sandbox Code Playgroud) 我想用Python读取一个CSV文件,然后打印出除第一行之外的每一行.
我知道如何打印出所有行:
with open('myfile.csv', 'rb') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
for row in reader:
print row
Run Code Online (Sandbox Code Playgroud)
我能想到的不打印第一行的唯一方法是:
with open('myfile.csv', 'rb') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
for i, row in enumerate(reader):
if i != 0:
print row
Run Code Online (Sandbox Code Playgroud)
但这似乎并不优雅.还有其他方法吗?
我想从一个空的2D NumPy数组开始,然后添加一些行.但是,到目前为止,我只能用一维数组做到这一点.这是我到目前为止所尝试的:
a = numpy.array([])
a = numpy.append(a, [1, 2])
a = numpy.append(a, [8, 8])
print a
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
[1, 2, 8, 8]
Run Code Online (Sandbox Code Playgroud)
而我希望输出为:
[[1, 2], [8, 8]]
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
使用Ubuntu,C++和cmake,我想创建一个Alpha基于另一个程序的代码的程序,Beta.我已经有了源代码Beta,我需要编写Alpha使用此现有代码的代码.我试图保持一切都很整洁,所以我有一个单独的目录Alpha和Beta源文件,Alpha.cpp和Beta.cpp.
这是我的目录结构:
/CMakeLists.txt
/Alpha.cpp (the main function)
/Beta
/CMakeLists.txt
/Beta.cpp
Run Code Online (Sandbox Code Playgroud)
我的CMakeLists.txt文件Alpha看起来像这样:
cmake_minimum_required(VERSION 2.8)
project(Alpha)
add_executable(Alpha Alpha.cpp Beta/Beta.cpp)
Run Code Online (Sandbox Code Playgroud)
现在,在原始代码中Beta,该CMakeLists.txt文件包含大量信息,例如检查操作系统,查找包以及通常定义各种cmake变量.我需要在CMakeLists.txt文件中使用这些变量Alpha,以便Beta.cpp正确编译.
所以,我的问题:是否有可能保留所有的这些信息Beta/CmakeLists.txt,而无需将其全部写出来的Alpha的CMakeLists.txt文件?我怎么然后告诉Alpha的CMakeLists.txt文件来读取Beta的CMakeLists.txt文件,以获得这些变量?我想这样做是为了保持一切整洁,并保持模块化.谢谢!
使用NumPy和Python 2.7,我想创建一个n-by-2数组y.然后,我想检查此数组是否z在其任何行中包含特定的1 x 2数组.
这是我到目前为止所尝试的,在这种情况下,n = 1:
x = np.array([1, 2]) # Create a 1-by-2 array
y = [x] # Create an n-by-2 array (n = 1), and assign the first row to x
z = np.array([1, 2]) # Create another 1-by-2 array
if z in y: # Check if y contains the row z
print 'yes it is'
Run Code Online (Sandbox Code Playgroud)
但是,这给了我以下错误:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() …Run Code Online (Sandbox Code Playgroud) 使用 OpenGL 着色器,我想渲染两个对象。每个都由三角形的一组顶点位置和顶点索引定义。当我制作缓冲区时,我使用以下代码:
// Object 1 vertex positions
glBindBuffer(GL_ARRAY_BUFFER, object1_vertex_buffer);
glBufferData(GL_ARRAY_BUFFER, object1_vertices_size, object1_vertices, GL_STATIC_DRAW);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
// Object 1 vertex indices
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, object1_index_buffer);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, object1_indices_size, object1_indices, GL_STATIC_DRAW);
// Object 2 vertex positions
glBindBuffer(GL_ARRAY_BUFFER, object2_vertex_buffer);
glBufferData(GL_ARRAY_BUFFER, object2_vertices_size, object2_vertices, GL_STATIC_DRAW);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
// Object 2 vertex indices
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, object2_index_buffer);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, object2_indices_size, object2_indices, GL_STATIC_DRAW);
Run Code Online (Sandbox Code Playgroud)
然后当我渲染场景时,我使用以下代码:
// Object 1
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, object1_index_buffer);
glDrawElements(GL_TRIANGLES, object1_num_indices, GL_UNSIGNED_INT, (void*)0);
// Object 2
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, object2_index_buffer);
glDrawElements(GL_TRIANGLES, object2_num_indices, GL_UNSIGNED_INT, (void*)0);
Run Code Online (Sandbox Code Playgroud)
但是,这会导致仅绘制对象 2。我究竟做错了什么?
使用PIL,我想通过指定方形边长和旋转角来在图像上绘制旋转的方形.方块应为白色,背景为灰色.例如,以下图像的旋转角度为45度:
我知道如何在PIL中进行旋转的唯一方法是旋转整个图像.但是,如果我从下面的图像开始:
然后旋转45度,我明白了:
该方法仅引入黑色部分以填充图像的"未定义"区域.
我怎么才能旋转正方形?
生成我原始方块的代码(第二个图)如下:
from PIL import Image
image = Image.new('L', (100, 100), 127)
pixels = image.load()
for i in range(30, image.size[0] - 30):
for j in range(30, image.size[1] - 30):
pixels[i, j] = 255
rotated_image = image.rotate(45)
rotated_image.save("rotated_image.bmp")
Run Code Online (Sandbox Code Playgroud) 我想实现一个Siamese卷积神经网络,其中两个图像在卷积层中共享权重,然后在通过完全连接的层之前连接.我试过一个实现,但它似乎是一个"黑客"解决方案.特别是,我已经将张量上的操作定义为简单的Python函数,我不确定这是否允许.
这是我尝试过的代码:
images = tf.placeholder(tf.float32, shape=[None, 64 * 64])
# Convolutional layers
# ...
# ...
# Results in pool3_flat, which is the flattened output of the third convolutional layer
pool3_flat = tf.reshape(pool3, [-1, 8 * 8 * 128])
# Now, merge the image pairs, where each pair is composed of adjacent images in the batch, with a stride of 2
def merge_pairs():
# Create a tensor to store the merged image pairs
# The batch size is 128, therefore …Run Code Online (Sandbox Code Playgroud) 我刚刚开始使用 Code::Blocks 编辑 C++ 代码,到目前为止一直使用 Qt Creator。我希望能够编辑和编译一些现有代码,其中包含 CMakeLists.txt 文件。我怎样才能做到这一点?
使用 Qt Creator,您可以指定一个脚本,当从菜单中单击“构建”时将运行该脚本。例如,您可以指定“cmake ../src”,然后指定“make”。有没有办法使用 Code::Blocks 来做到这一点?
在强化学习中,我试图理解策略迭代和值迭代之间的区别.这里有一些一般的答案,但我有两个具体的问题,我找不到答案.
1)我听说政策迭代"向前工作",而价值迭代"向后工作".这是什么意思?我认为这两种方法只需要采用每个状态,然后查看它可以达到的所有其他状态,并从中计算出值 - 通过边缘化策略的动作分配(策略迭代)或者将argmax与动作值(值迭代).那么为什么每种方法都"移动"的"方向"有什么概念呢?
2)策略迭代需要在策略评估期间进行迭代过程,以找到值函数 - 然而,值迭代只需要一步.为什么会有所不同?为什么值迭代只需一步收敛?
谢谢!
python ×5
numpy ×3
c++ ×2
cmake ×2
arrays ×1
codeblocks ×1
csv ×1
opengl ×1
pillow ×1
tensorflow ×1