我试图写下一个非常简单的行,以拥有一个1D数组,但是,输出并不像预期的那样,它是正确的,但在每5个元素前面都有单词数组,我附上了代码:
import numpy as np
c=np.array([[1,11,21,31,5],[4,14,24,34,5],
[7,17,27,37,5],[31,41,51,61,5],[34,44,54,64,5],
[37,47,57,67,5],[61,71,81,91,5],[64,74,84,94,5],
[64,74,84,94,5],[64,74,84,94,5],
[64,74,84,94,5]
,[64,74,84,94,5],[64,74,84,94,5],[64,74,84,94,5],
[64,74,84,94,5],
[67,77,87,97,5]])
s=np.array([4,3,2,1])
r_max=np.max(s)
d = []
x=4
for I in range(x-1,-2,-2):
for J in range(r_max-s[I]):
d=[d,c[r_max*I-J+3]]
print(d)
# Output: [[[[[[[[], array([67, 77, 87, 97, 5])], array([64, 74, 84, 94, 5])], array([64,
# 74, 84, 94, 5])], array([64, 74, 84, 94, 5])], array([67, 77, 87, 97, 5])],
# array([64, 74, 84, 94, 5])], array([64, 74, 84, 94, 5])]
# expected output same numbers but as 1D array as the following:
#[67, 77, 87, 97, 64, 74, 84, 94, 5, 64, 74, 84, 94, 5, 64, 74, 84, 94, 5,67, 77, 87,
# 97, 5,64, 74, 84, 94, 5,64, 74, 84, 94, 5]]
d=[d,c[r_max*I-J+3]]
,这里您将添加一个列表作为元素如果您想要
merge
2列表,您可以执行:d = d + list(c[r_max*I-J+3]])
您还可以使用
np.concatenate
:d = np.concatenate((d, c[r_max*I-J+3]])
(别忘了用d = np.array([])
修改d
定义)改用
list.append
:在列表中收集
numpy
数组时,显示内容包括单词array
。它告诉我们列表包含数组。d
列表的元素都是相同的形状,因此np.array
可以生成一个漂亮的二维数字数组使用
d=[d,c[r_max*I-J+3]]
您收集了相同的数组,但是在一个嵌套很深的列表列表中。无法转换为多维数组的在打印对象时,python不会加入诸如“array”或括号之类的随机词。这些都是由对象本身产生的,并说明了它们的身份和结构。学会阅读这些信息。不要吝啬于基本的python和numpy阅读
一维期望
该2d数组可以通过
ravel
转换为1d数组:另一个选项是在
d
中收集数组时使用extend
:hstack
也可以与原始d
一起使用相关问题 更多 >
编程相关推荐