2012-04-17 14 views
26

Tôi đang cố gắng chia nhỏ một dòng chương trình. Y là ma trận dữ liệu nhưng tôi không thể tìm thấy bất kỳ dữ liệu cụ thể nào về những gì .shape[0] thực hiện chính xác..shape [] làm gì trong "cho i trong phạm vi (Y.shape [0])"?

for i in range(Y.shape[0]): 
    if Y[i] == -1: 

Chương trình này sử dụng numpy, scipy, matplotlib.pyplot và cvxopt.

+4

http://docs.scipy.org/doc/numpy/reference/generated/numpy.ma.shape.html hoặc http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.shape.html#numpy.ndarray.shape –

Trả lời

61

Thuộc tính shape cho mảng có nhiều mảng trả về kích thước của mảng. Nếu Yn hàng và m cột, thì Y.shape(n,m). Vì vậy, Y.shape[0]n.

In [46]: Y = np.arange(12).reshape(3,4) 

In [47]: Y 
Out[47]: 
array([[ 0, 1, 2, 3], 
     [ 4, 5, 6, 7], 
     [ 8, 9, 10, 11]]) 

In [48]: Y.shape 
Out[48]: (3, 4) 

In [49]: Y.shape[0] 
Out[49]: 3 
6

shape là bộ dữ liệu cung cấp cho bạn chỉ số số thứ nguyên trong mảng. Vì vậy, trong trường hợp của bạn, vì giá trị chỉ số của Y.shape[0] là 0, bạn đang làm việc cùng với thứ nguyên đầu tiên của mảng.

Từ http://www.scipy.org/Tentative_NumPy_Tutorial#head-62ef2d3c0a5b4b7d6fdc48e4a60fe48b1ffe5006

An array has a shape given by the number of elements along each axis: 
>>> a = floor(10*random.random((3,4))) 

>>> a 
array([[ 7., 5., 9., 3.], 
     [ 7., 2., 7., 8.], 
     [ 6., 8., 3., 2.]]) 

>>> a.shape 
(3, 4) 

http://www.scipy.org/Numpy_Example_List#shape có một số chi tiết ví dụ.

+0

Cảm ơn tuyệt vời Levon! – HipsterCarlGoldstein

+1

@HipsterCarlGoldstein Chỉ cần một lưu ý thân thiện, nếu bất kỳ một trong những câu trả lời được cung cấp giải quyết vấn đề của bạn vui lòng xem xét [chấp nhận nó bằng cách nhấp vào dấu kiểm bên cạnh câu trả lời ] (http://meta.stackexchange.com/questions/5234/how -does-accepting-an-answer-work/5235 # 5235). Điều này sẽ cung cấp cho bạn và người trả lời cả một số điểm đại diện và cũng đánh dấu vấn đề này như đã được giải quyết - cảm ơn. – Levon

22

hình dạng là một tuple cung cấp cho kích thước của mảng ..

>>> c = arange(20).reshape(5,4) 
>>> c 
array([[ 0, 1, 2, 3], 
     [ 4, 5, 6, 7], 
     [ 8, 9, 10, 11], 
     [12, 13, 14, 15], 
     [16, 17, 18, 19]]) 

c.shape[0] 
5 

Cung cấp số lượng hàng

c.shape[1] 
4 

Cung cấp số lượng cột

0

Trong Python shape() là sử dụng trong gấu trúc để cung cấp số hàng/cột:

Số hàng s được cho bởi:

train = pd.read_csv('fine_name') //load the data 
train.shape[0] 

Số cột được cho bởi

train.shape[1] 
Các vấn đề liên quan