2 回答

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
Numpy 正在刪除第二個(gè)示例中的單例維度。如果需要,您可以保留形狀并使用以下內(nèi)容獲得第一個(gè)示例的等效項(xiàng)。
a[:, [2]] # get [[3],[9]]

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
我認(rèn)為您1D以稍微不明確的方式使用術(shù)語數(shù)組。
第一個(gè)選項(xiàng)返回形狀為 (2, 1) 的數(shù)組,另一個(gè)選項(xiàng)返回形狀為 (2, ) 的類似列表的數(shù)組。
它們都是“數(shù)學(xué)上”一維的,但它們具有不同的麻木形狀。
所以你的目標(biāo)是獲得一個(gè)更像矩陣的數(shù)組,形狀為 (2, 1),這是通過在所有維度上切片所需的索引來完成的,而不是選擇特定的索引。
這是一個(gè)更直觀的案例,可以通過在兩個(gè)維度上進(jìn)行切片或選擇來將事情發(fā)揮到極致:
import numpy as np
a = np.array([[ 1, 2, 3, 4, 5, 6],
[ 7, 8, 9, 10, 11, 12]])
specific_index_value = a[0, 0]
print(specific_index_value)
print(type(specific_index_value))
print(str(specific_index_value) + ' is a scalar, not a 1X1 matrix')
>> 1
>> <class 'numpy.int32'>
>> 1 is a scalar, not a 1X1 matrix
sliced_index_value = a[:1, :1]
print(sliced_index_value)
print(type(sliced_index_value))
print(str(sliced_index_value) + ' is a matrix, with shape {}'.format(sliced_index_value.shape))
>> [[1]]
>> <class 'numpy.ndarray'>
>> [[1]] is a matrix, with shape (1, 1)
那有意義嗎?祝你好運(yùn)!
添加回答
舉報(bào)