ฉันกำลังพยายามเรียนรู้ Numpy และ Python รับอาร์เรย์ดังนี้
import numpy as np
a = np.array([[1,2],[1,2]])
มีฟังก์ชั่นที่คืนค่าขนาดของa
(ega คืออาร์เรย์ 2 คูณ 2) หรือไม่?
size()
ส่งคืน 4 และนั่นไม่ได้ช่วยอะไรมาก
ฉันกำลังพยายามเรียนรู้ Numpy และ Python รับอาร์เรย์ดังนี้
import numpy as np
a = np.array([[1,2],[1,2]])
มีฟังก์ชั่นที่คืนค่าขนาดของa
(ega คืออาร์เรย์ 2 คูณ 2) หรือไม่?
size()
ส่งคืน 4 และนั่นไม่ได้ช่วยอะไรมาก
คำตอบ:
shape
อาจอธิบายได้อย่างแม่นยำมากขึ้นว่าเป็นคุณลักษณะมากกว่าฟังก์ชั่นเนื่องจากไม่ได้เรียกใช้โดยใช้ไวยากรณ์การเรียกใช้ฟังก์ชัน
property
ตัวเองจะเป็นคลาส แต่ndarray.shape
ไม่ใช่คลาส แต่เป็นอินสแตนซ์ของประเภทคุณสมบัติ
ตามแบบแผนใน Python world ทางลัดnumpy
คือnp
:
In [1]: import numpy as np
In [2]: a = np.array([[1,2],[3,4]])
ใน Numpy, มิติ , แกน / แกน , รูปร่างที่เกี่ยวข้องและแนวคิดบางครั้งคล้ายกัน:
ในคณิตศาสตร์ / ฟิสิกส์มิติหรือมิติถูกกำหนดอย่างไม่เป็นทางการเป็นจำนวนต่ำสุดของพิกัดที่จำเป็นในการระบุจุดใด ๆ ภายในพื้นที่ แต่ในNumpyตามnumpy docมันเป็นเช่นเดียวกับแกน / แกน:
ในขนาด Numpy เรียกว่าแกน จำนวนแกนคืออันดับ
In [3]: a.ndim # num of dimensions/axes, *Mathematics definition of dimension*
Out[3]: 2
ที่ nประสานงานไปยังดัชนีarray
ใน Numpy และอาร์เรย์หลายมิติสามารถมีหนึ่งดัชนีต่อแกน
In [4]: a[1,0] # to index `a`, we specific 1 at the first axis and 0 at the second axis.
Out[4]: 3 # which results in 3 (locate at the row 1 and column 0, 0-based index)
อธิบายจำนวนข้อมูล (หรือช่วง) ตามแต่ละแกนที่มีอยู่
In [5]: a.shape
Out[5]: (2, 2) # both the first and second axis have 2 (columns/rows/pages/blocks/...) data
import numpy as np
>>> np.shape(a)
(2,2)
ยังใช้งานได้ถ้าอินพุตไม่ใช่อาร์เรย์ numpy แต่เป็นรายการของรายการ
>>> a = [[1,2],[1,2]]
>>> np.shape(a)
(2,2)
หรือสิ่งอันดับของสิ่งอันดับ
>>> a = ((1,2),(1,2))
>>> np.shape(a)
(2,2)
np.shape
ก่อนเปลี่ยนอาร์กิวเมนต์เป็นอาร์เรย์หากไม่มีคุณลักษณะรูปร่างนั่นคือเหตุผลที่มันทำงานในรายการและตัวอย่าง tuple
คุณสามารถใช้. รูปร่าง
In: a = np.array([[1,2,3],[4,5,6]])
In: a.shape
Out: (2, 3)
In: a.shape[0] # x axis
Out: 2
In: a.shape[1] # y axis
Out: 3
คุณสามารถใช้.ndim
มิติและ.shape
รู้มิติที่แน่นอน
var = np.array([[1,2,3,4,5,6], [1,2,3,4,5,6]])
var.ndim
# displays 2
var.shape
# display 6, 2
คุณสามารถเปลี่ยนมิติโดยใช้.reshape
ฟังก์ชั่น
var = np.array([[1,2,3,4,5,6], [1,2,3,4,5,6]]).reshape(3,4)
var.ndim
#display 2
var.shape
#display 3, 4
shape
วิธีการกำหนดว่าa
จะเป็น ndarray Numpy แต่ Numpy ยังสามารถคำนวณรูปร่างของวัตถุหลามบริสุทธิ์ได้
np.shape([[1,2],[1,2]])
a.shape
เป็นเพียงรุ่น np.info()
จำกัด ลองดู:
import numpy as np
a = np.array([[1,2],[1,2]])
np.info(a)
ออก
class: ndarray
shape: (2, 2)
strides: (8, 4)
itemsize: 4
aligned: True
contiguous: True
fortran: False
data pointer: 0x27509cf0560
byteorder: little
byteswap: False
type: int32
shape
ใน NumPy สิ่งที่ NumPy เรียกว่ามิติคือ 2 ในกรณีของคุณ (ndim
) มันมีประโยชน์ที่จะรู้คำศัพท์ NumPy ปกติ: ทำให้การอ่านเอกสารง่ายขึ้น!