我如何对numpy数组进行垂直切割?

gcmastyq  于 2023-05-17  发布在  其他
关注(0)|答案(1)|浏览(100)

我正在使用一个(3200,3200)numpy数组,从h5文件中读取。我已经在上面做了一些计算,然后想绘制某个垂直切割的值。例如,在特定x坐标上的所有值。
根据我所知道的使用索引:array[:][x]应该给予第x列,但array[:][x]array[x][:]给出的是完全相同的数组,这是对应于array[x][:]的水平切割。我检查了我的数据是否对称,在看完完整的图后,情况并非如此。
从我所经历的来看,这似乎是一个bug,因为在使用np.transpose转置数据后,发生了完全相同的事情,但随后成功地转置了数据。
我尝试使用以下命令:

array[:, x]
array[:][x]

plt.plot函数中或函数外部使用索引进行绘图也没有改变任何东西。
如:

plt.plot(array[:][x])

a = array[:][x]
plt.plot(a)

产生相同的图形。

yb3bgrhw

yb3bgrhw1#

所以我创建了一个小图片例子,你可以试试:

import numpy as np
import matplotlib.pyplot as plt

example_array = np.random.randint(low=1, high=10, size=(10, 10))
# this is how image will look like
plt.imshow(example_array)

# this what if you cut 3rd column
plt.plot(example_array[:, 2])

[:][x]这实际上不起作用,因为它已经在你的问题的评论部分提到。

相关问题