我有一个Python脚本,我将2D列表my_list
的每一行分成两部分。第一部分array1
包含每行中除了最后两个元素之外的所有元素,第二部分array2
,my_list
中的行可以具有不同的长度,因此会出现挑战(假设每一行都有2个以上的元素)。下面是一个示例代码:
import numpy as np
my_list = [[1, 2, 3, 4], [5, 6, 7]]
back_crop = 2
list1 = [np.array(row[:-back_crop], dtype=np.float64) for row in my_list]
list2 = [np.array(row[-back_crop:], dtype=np.float64) for row in my_list]
array1 = np.array(list1, dtype=object)
array2 = np.array(list2, dtype=object)
print(array1, '\n', array2)
print(array1[0].dtype, array2[0].dtype)
字符串
这将打印:
[array([1., 2.]) array([5.])]
[[3.0 4.0]
[6.0 7.0]]
float64 object
型
如何修改此代码以确保array1
和array2
都包含float64
数据类型的数组,同时保持当前数组的维度(不使用零或NA值填充)?
1条答案
按热度按时间bd1hkmkf1#
您的列表和数组:
字符串
array2
可以在没有object
的情况下生成,得到一个数字dtype,仍然是(2,2)形状:型
你可以创建一个形状为(2,)的“空白”数组:
型
并分配list1的元素:
型
或列表2的元素:
型