จะประกาศอาร์เรย์ใน Python ได้อย่างไร?


490

ฉันจะประกาศอาร์เรย์ในPython ได้อย่างไร

ฉันไม่พบการอ้างอิงถึงอาร์เรย์ในเอกสารประกอบ


121
ด้วยเหตุผลบางอย่างที่เข้าใจไม่ได้งูใหญ่เรียก "รายการ" ของอาร์เรย์ โรงเรียนสอนการออกแบบภาษา "ทุกคน - รู้ - อะไร - นี่คืออะไร" เป็นตัวเลือกที่ไม่ดีโดยเฉพาะอย่างยิ่งเนื่องจากดูเหมือนว่ารายการที่เชื่อมโยงมากกว่าอาร์เรย์
Glenn Maynard

42
@Glenn Maynard: อาจเป็นเพราะในภาษา C-like arrays มีความยาวคงที่ในขณะที่รายการ Python ไม่ได้ มันเหมือนกับ STL vector ใน C ++ หรือ ArrayList ใน Java
MAK

128
มันเรียกว่ารายการเพราะมันเป็นรายการ [A (), 1, 'Foo', u'öäöäö ', 67L, 5.6] รายการ อาร์เรย์คือ "การจัดเรียงรายการตามระยะห่างที่เท่ากันในหน่วยความจำคอมพิวเตอร์" (วิกิพีเดีย)
Lennart Regebro

35
ไม่มีอะไรเกี่ยวกับ "อาร์เรย์" คำศัพท์ที่เข้าใจกันโดยทั่วไปบ่งบอกความยาวคงที่หรือสิ่งใด ๆ เกี่ยวกับเนื้อหา สิ่งเหล่านี้เป็นเพียงข้อ จำกัด ของการใช้อาร์เรย์โดยเฉพาะของ C รายการ Python เว้นระยะเท่ากัน (ตัวชี้ไปยังวัตถุภายใน) หรืออื่น ๆ__getitem__จะไม่เป็น O (1)
Glenn Maynard

24
@Glenn จาก en.wikipedia.org/wiki/Array_data_structure: "องค์ประกอบของโครงสร้างข้อมูลอาร์เรย์จำเป็นต้องมีขนาดเท่ากัน" (จริงสำหรับอาร์เรย์ของ Python ไม่เป็นจริงสำหรับรายการ Python) และ "ชุดของดัชนี tuples ที่ถูกต้องและ ที่อยู่ขององค์ประกอบ (และด้วยเหตุนี้องค์ประกอบที่อยู่สูตร) ​​มักจะได้รับการแก้ไขในขณะที่อาร์เรย์ใช้งานอยู่ "(ไม่เป็นความจริงใน Python สำหรับรายการหรืออาร์เรย์)
Alex Martelli

คำตอบ:


358
variable = []

ตอนนี้variableหมายถึงรายการที่ว่างเปล่า*

แน่นอนว่านี่คือการมอบหมายไม่ใช่การประกาศ ไม่มีทางที่จะพูดใน Python "ตัวแปรนี้ไม่ควรอ้างถึงสิ่งอื่นนอกจากรายการ" เนื่องจาก Python ถูกพิมพ์แบบไดนามิก


*ชนิด Python ในตัวเริ่มต้นเรียกว่ารายการไม่ใช่อาร์เรย์ มันเป็นตู้คอนเทนเนอร์ที่มีความยาวตามอำเภอใจซึ่งสามารถเก็บวัตถุต่างชนิดกันได้ (ประเภทของวัตถุนั้นไม่สำคัญและสามารถผสมได้อย่างอิสระ) สิ่งนี้ไม่ควรสับสนกับarrayโมดูลซึ่งให้ประเภทที่ใกล้เคียงกับarrayประเภทC มากขึ้น เนื้อหาจะต้องเป็นเนื้อเดียวกัน (ทุกประเภทเดียวกัน) แต่ความยาวยังคงเป็นแบบไดนามิก


11
เป็นไปได้ไหมที่จะเริ่มต้นเนื้อหาของอาร์เรย์เช่นเดียวกับใน JavaScript? (เช่น, เป็นvariable = ["Hi", "Hello"];?)
Anderson Green

6
@AndersonGreen ใช่
sepp2k

3
คุณจะประกาศอาร์เรย์หลายมิติได้อย่างไร (เช่นอาร์เรย์ 2D)
Anderson Green

7
@ แอนเดอร์สันกรีนอย่างที่ฉันบอกไปแล้วว่าไม่มีสิ่งใดในการประกาศตัวแปรใน Python คุณจะสร้างรายการหลายมิติโดยการใช้รายการเปล่าและวางรายการอื่นไว้ข้างในหรือถ้าขนาดของรายการเป็นที่รู้จักในเวลาเขียนคุณสามารถเขียนเป็นตัวอักษรแบบนี้my_2x2_list = [[a, b], [c, d]]ได้ ขึ้นอยู่กับสิ่งที่คุณต้องการอาร์เรย์หลายมิติสำหรับคุณยังอาจพิจารณาใช้numpyซึ่งกำหนดประเภทอาร์เรย์สำหรับอาร์เรย์หลายมิติที่เป็นเนื้อเดียวกันและไม่มีกล่องที่สามารถมีประสิทธิภาพมากขึ้นถ้าสามารถทำได้ดังนั้นจึงเหมาะสำหรับการคำนวณเชิงตัวเลข
sepp2k

1
@ IfanIqbal ใช่ถ้ามันมีองค์ประกอบอย่างน้อยหนึ่งรายการคุณสามารถทำได้
sepp2k

136

นี่เป็นหัวข้อที่ซับซ้อนอย่างน่าประหลาดใจใน Python

คำตอบที่เป็นประโยชน์

อาร์เรย์เป็นตัวแทนของคลาสlist(ดูการอ้างอิงและไม่ผสมกับเครื่องกำเนิดไฟฟ้า )

ดูตัวอย่างการใช้งาน:

# empty array
arr = [] 

# init with values (can contain mixed types)
arr = [1, "eels"]

# get item by index (can be negative to access end of array)
arr = [1, 2, 3, 4, 5, 6]
arr[0]  # 1
arr[-1] # 6

# get length
length = len(arr)

# supports append and insert
arr.append(8)
arr.insert(6, 7)

คำตอบเชิงทฤษฎี

ภายใต้ประทุน Python listเป็นเสื้อคลุมสำหรับอาเรย์จริงที่มีการอ้างอิงถึงรายการ นอกจากนี้อาร์เรย์พื้นฐานจะถูกสร้างขึ้นด้วยพื้นที่พิเศษบางส่วน

ผลที่ตามมาของสิ่งนี้คือ:

  • การเข้าถึงแบบสุ่มราคาถูกจริงๆ ( arr[6653]เหมือนกับarr[0])
  • append การดำเนินงานคือ 'ฟรี' ในขณะที่บางพื้นที่พิเศษ
  • insert การดำเนินการมีราคาแพง

ตรวจสอบตารางการปฏิบัติการที่ยอดเยี่ยมนี้

นอกจากนี้โปรดดูรูปภาพนี้ซึ่งฉันได้พยายามแสดงความแตกต่างที่สำคัญที่สุดระหว่างอาร์เรย์ลำดับการอ้างอิงและรายการที่ลิงก์: อาร์เรย์อาร์เรย์ทุกที่


5
เพียงเพิ่มมีวิธีที่ยอดเยี่ยมจริงๆในการตัดอาร์เรย์ในไพ ธ อน: [1, 2, 3, 4, 5, 6, 7, 8, 9][1:-2]ผลจะเป็น[2, 3, 4, 5, 6, 7]
Anton Purin

2
ฉันเห็นคะแนนโหวตบางส่วนสำหรับเวลาโพสต์นี้ มันจะดีถ้ามีใครซักคนโพสต์คำว่าทำไม ขอบคุณ
Anton Purin

2
คุณเป็น MVP จริง จำเป็นต้องรู้การออกแบบที่เลือกจริงของ 'รายการ' เพื่อตัดสินใจการเขียนโปรแกรมที่เหมาะสม โดยทั่วไปมันเป็น 'เวกเตอร์' ใน C ++ ขอบคุณ!
Necro

นี่คือคำตอบที่ยาวจริง ๆ พร้อมคำอธิบายที่ดี!
อาเหม็ด

ฉันขอเพิ่มสัญกรณ์เชิงปฏิบัติสำหรับการเปรียบเทียบได้หรือไม่ตัวอย่างเช่นa == b[:2]return จริงถ้า 2 องค์ประกอบแรกของbเท่ากับค่าของอาร์เรย์a
Bruno L.

124

คุณไม่ได้ประกาศสิ่งต่าง ๆ แต่นี่เป็นวิธีที่คุณสร้างอาร์เรย์ใน Python:

from array import array
intarray = array('i')

สำหรับข้อมูลเพิ่มเติมดูโมดูลอาร์เรย์: http://docs.python.org/library/array.html

ตอนนี้เป็นไปได้ที่คุณไม่ต้องการอาร์เรย์ แต่เป็นรายการ แต่คนอื่น ๆ ได้ตอบแล้ว :)


10
นี่เป็นเรื่องตลก แต่ไม่ใช่คำตอบที่ดีสำหรับคำถามที่ติดแท็ก "มือใหม่" เพียงแค่จะทำให้มันชัดเจน: listในงูใหญ่คุณมักจะใช้ชนิดข้อมูลที่เรียกว่า Python มีประเภทข้อมูลวัตถุประสงค์พิเศษที่เรียกว่าarrayซึ่งเป็นเหมือนอาร์เรย์ C และมีการใช้เพียงเล็กน้อย
steveha

63
ไม่ แต่ทุกคนใช้รายการอยู่แล้ว ฉันคิดว่ามันจะเป็นคำตอบที่ดีที่ชี้ให้เห็นว่ามีอาร์เรย์ด้วย
Lennart Regebro

8
อุปกรณ์ประกอบฉากสุดบ้าสำหรับคำตอบนี้ ฉันเขียนโปรแกรมใน Python มาหลายปีและเพิ่งรู้ว่ามีวัตถุอาร์เรย์ Python จริงที่แตกต่างจากรายการวัตถุ ในขณะที่โครงสร้างข้อมูลคล้ายกันมากอาร์เรย์จะ จำกัด ชนิดของวัตถุที่อาร์เรย์สามารถเก็บได้ คำตอบที่ดี @LennartRegebro!
Josh Brown

4
นี่ควรเป็นคำตอบที่ถูกต้อง List and Arrays เป็นสองสิ่งที่แตกต่างกัน @LennartRegebro ขอบคุณ
Mina Gabriel

มีเหตุผลเฉพาะที่คุณอาจต้องการใช้อาร์เรย์แทนรายการ โดยเฉพาะถ้าคุณมีอาร์เรย์ที่เรียกว่า myarray เต็มไปด้วยตัวเลขคุณสามารถดำเนินการทางคณิตศาสตร์กับมันและการดำเนินการเหล่านั้นจะถูกนำไปใช้กับรายการทั้งหมดที่อยู่ภายในมัน ดังนั้นถ้าคุณเรียกใช้ myarray / 3 ตัวเลขภายในทุกตัวจะถูกหารด้วย 3 หากคุณพยายามทำสิ่งเดียวกันกับรายการคุณจะได้รับข้อผิดพลาด ดังนั้นอาร์เรย์จึงมีประสิทธิภาพมากกว่าสำหรับชุดข้อมูลจำนวนมาก
แมทธิว

66

ฉันคิดว่าคุณ (หมายถึง) ต้องการรายชื่อที่เต็มไปด้วย 30 เซลล์แรกแล้ว ดังนั้น

   f = []

   for i in range(30):
       f.append(0)

ตัวอย่างที่สามารถใช้สิ่งนี้ได้อยู่ในลำดับฟีโบนักชี ดูปัญหาที่ 2 ในProject Euler


96
นั่นเป็นวิธีการเริ่มต้นรายการที่ค่อนข้างพิสดาร ลองf = [0] * 30แทน
John Machin

ไม่เหมือนกับ a = range (10) จาก @slehar anwer หรือไม่ รักงูหลามมันคือไวยากรณ์และเป็นเซน
m3nda

@ erm3nda ไม่: $ python3 Python 3.4.2 [... ] >>> a = range (10) >>> print (a) range (0, 10) >>>
arp

37

นี่คือวิธี:

my_array = [1, 'rebecca', 'allard', 15]

4
เนื่องจากนี่ไม่ใช่อาร์เรย์หลาม แต่เป็นรายการหลามมันจะไม่สับสนน้อยกว่าถ้าจะเรียกมันว่า "my_list"
Mattis Asp

4
ที่สร้างรายการไม่ใช่อาร์เรย์ พวกมันต่างกันและมีคุณสมบัติแตกต่างกันในหลาม โดยเฉพาะคุณสามารถทำการดำเนินการเชิงตัวเลขกับอาร์เรย์ แต่ไม่สามารถเทียบกับรายการ
Matthew

21

สำหรับการคำนวณใช้อาร์เรย์numpyดังนี้:

import numpy as np

a = np.ones((3,2))        # a 2D array with 3 rows, 2 columns, filled with ones
b = np.array([1,2,3])     # a 1D array initialised using a list [1,2,3]
c = np.linspace(2,3,100)  # an array with 100 points beteen (and including) 2 and 3

print(a*1.5)  # all elements of a times 1.5
print(a.T+b)  # b added to the transpose of a

อาร์เรย์ numpy เหล่านี้สามารถบันทึกและโหลดจากดิสก์ (แม้บีบอัด) และการคำนวณที่ซับซ้อนที่มีองค์ประกอบจำนวนมากนั้นรวดเร็วเหมือน C

ใช้มากในสภาพแวดล้อมทางวิทยาศาสตร์ ดูที่นี่สำหรับข้อมูลเพิ่มเติม


17

ความคิดเห็นของ JohnMachinควรเป็นคำตอบที่แท้จริง คำตอบอื่น ๆ ทั้งหมดเป็นเพียงการแก้ปัญหาในความคิดของฉัน! ดังนั้น:

array=[0]*element_count

ตกลง. ยกเว้นการโทรอย่างระมัดระวังแม้กระทั่งตัวแปร "array" หรือรับความพิโรธ ในนี้ฉันจะเพิ่มว่าคุณสามารถสร้าง "อาร์เรย์หลายมิติ" ในทำนองเดียวกัน:x=[[0] * 10] * 10
Peter S Magnusson

17

การมีส่วนร่วมสองข้อเสนอแนะว่าอาร์เรย์ในไพ ธ อนนั้นมีรายการอยู่ สิ่งนี้ไม่ถูกต้อง Python มีการนำไปใช้อย่างอิสระarray()ในโมดูลไลบรารีมาตรฐานarray " array.array()" ดังนั้นจึงไม่ถูกต้องที่จะทำให้ทั้งสองสับสน รายการคือรายการในไพ ธ อนดังนั้นควรระมัดระวังการใช้ระบบการตั้งชื่อ

list_01 = [4, 6.2, 7-2j, 'flo', 'cro']

list_01
Out[85]: [4, 6.2, (7-2j), 'flo', 'cro']

array.array()มีสิ่งหนึ่งที่แตกต่างที่สำคัญมากระหว่างรายการและเป็น ในขณะที่วัตถุทั้งสองนี้ได้รับการเรียงลำดับแล้ว array.array () เป็นลำดับที่เป็นเนื้อเดียวกันในขณะที่รายการเป็นลำดับที่ไม่เป็นเนื้อเดียวกัน


16

คุณไม่ได้ประกาศอะไรเลยใน Python คุณแค่ใช้มัน ผมขอแนะนำให้คุณเริ่มต้นกับสิ่งที่ต้องการhttp://diveintopython.net


2
บางครั้งคุณต้องประกาศประเภทของตัวแปร: หากคุณไม่เคยใช้มาก่อนนั่นคือโครงสร้างการควบคุมมันไม่มีอยู่นอกโครงสร้างการควบคุมและคุณจะสร้างตัวแปรใหม่ขึ้นมา สมมุติว่าตัวแปรนั้นเป็น int ซึ่งจะขัดแย้งกันถ้าคุณใช้มันเป็นประเภทที่ซับซ้อนมากขึ้น
Clearer

@ Clearer ใช่แล้วการใช้ฟังก์ชั่นบางครั้งจำเป็นต้องประกาศมันและบางครั้งก็เล่น globals บางส่วนเมื่อใช้ฟังก์ชั่นและไม่ต้องการเขียนอาร์กิวเมนต์มากเกินไปในฟังก์ชั่น
m3nda

มันไม่ใช่แค่ฟังก์ชั่น ถ้าคำสั่งง่ายๆจะทำให้คุณมีปัญหาเดียวกัน
ชัดเจน

1
การเขียนโปรแกรมทั้งหมดเกี่ยวกับการประกาศไม่ว่าคุณจะใช้ภาษาใด การประกาศประเภทแตกต่างกันอย่างสิ้นเชิง
Outside_Box

แม้ว่าลิงก์นี้อาจตอบคำถามได้ดีกว่าหากรวมส่วนสำคัญของคำตอบไว้ที่นี่และให้ลิงก์สำหรับการอ้างอิง คำตอบสำหรับลิงก์เท่านั้นอาจไม่ถูกต้องหากหน้าเว็บที่เชื่อมโยงมีการเปลี่ยนแปลง
Adrian Tompkins


11

ในการเพิ่มคำตอบของ Lennart อาเรย์อาจถูกสร้างเช่นนี้

from array import array
float_array = array("f",values)

โดยที่ค่าสามารถอยู่ในรูปแบบของ tuple, list หรือ np.array แต่ไม่ใช่ array:

values = [1,2,3]
values = (1,2,3)
values = np.array([1,2,3],'f')
# 'i' will work here too, but if array is 'i' then values have to be int
wrong_values = array('f',[1,2,3])
# TypeError: 'array.array' object is not callable

และผลลัพธ์จะยังคงเหมือนเดิม:

print(float_array)
print(float_array[1])
print(isinstance(float_array[1],float))

# array('f', [1.0, 2.0, 3.0])
# 2.0
# True

เมธอดส่วนใหญ่สำหรับลิสต์จะทำงานร่วมกับอาเรย์เช่นกันโดยทั่วไปจะเป็นป๊อป (), ขยาย () และผนวก ()

เมื่อพิจารณาจากคำตอบและความคิดเห็นปรากฏว่าโครงสร้างข้อมูลอาร์เรย์ไม่เป็นที่นิยม ฉันชอบมันเช่นเดียวกับที่คน ๆ หนึ่งอาจชอบสิ่งอันดับมากกว่ารายการ

โครงสร้างอาร์เรย์มีกฎที่เข้มงวดกว่ารายการหรือ np.array และสิ่งนี้สามารถลดข้อผิดพลาดและทำให้การดีบักง่ายขึ้นโดยเฉพาะเมื่อทำงานกับข้อมูลตัวเลข

ความพยายามที่จะแทรก / ต่อท้ายลอยไปยังอาร์เรย์ int จะโยน TypeError:

values = [1,2,3]
int_array = array("i",values)
int_array.append(float(1))
# or int_array.extend([float(1)])

# TypeError: integer argument expected, got float

การเก็บค่าที่มีความหมายเป็นจำนวนเต็ม (เช่นรายการดัชนี) ในรูปแบบอาร์เรย์จึงอาจป้องกัน "TypeError: ดัชนีรายการจะต้องเป็นจำนวนเต็มไม่ใช่ลอย" เนื่องจากอาร์เรย์สามารถทำซ้ำได้คล้ายกับ np.array และรายการ:

int_array = array('i',[1,2,3])
data = [11,22,33,44,55]
sample = []
for i in int_array:
    sample.append(data[i])

น่ารำคาญการผนวก int เข้ากับอาร์เรย์แบบลอยจะทำให้ int เปลี่ยนเป็นแบบลอยโดยไม่ส่งข้อยกเว้น

np.array รักษาชนิดข้อมูลเดียวกันสำหรับรายการด้วยเช่นกัน แต่แทนที่จะให้ข้อผิดพลาดมันจะเปลี่ยนประเภทข้อมูลให้พอดีกับรายการใหม่ (โดยปกติจะเป็นสองเท่าหรือ str):

import numpy as np
numpy_int_array = np.array([1,2,3],'i')
for i in numpy_int_array:
    print(type(i))
    # <class 'numpy.int32'>
numpy_int_array_2 = np.append(numpy_int_array,int(1))
# still <class 'numpy.int32'>
numpy_float_array = np.append(numpy_int_array,float(1))
# <class 'numpy.float64'> for all values
numpy_str_array = np.append(numpy_int_array,"1")
# <class 'numpy.str_'> for all values
data = [11,22,33,44,55]
sample = []
for i in numpy_int_array_2:
    sample.append(data[i])
    # no problem here, but TypeError for the other two

สิ่งนี้เป็นจริงระหว่างการมอบหมายเช่นกัน หากระบุชนิดข้อมูล np.array จะแปลงรายการเป็นชนิดข้อมูลดังกล่าว:

int_numpy_array = np.array([1,2,float(3)],'i')
# 3 becomes an int
int_numpy_array_2 = np.array([1,2,3.9],'i')
# 3.9 gets truncated to 3 (same as int(3.9))
invalid_array = np.array([1,2,"string"],'i')
# ValueError: invalid literal for int() with base 10: 'string'
# Same error as int('string')
str_numpy_array = np.array([1,2,3],'str')
print(str_numpy_array)
print([type(i) for i in str_numpy_array])
# ['1' '2' '3']
# <class 'numpy.str_'>

หรือในสาระสำคัญ:

data = [1.2,3.4,5.6]
list_1 = np.array(data,'i').tolist()
list_2 = [int(i) for i in data]
print(list_1 == list_2)
# True

ในขณะที่อาร์เรย์จะให้:

invalid_array = array([1,2,3.9],'i')
# TypeError: integer argument expected, got float

ด้วยเหตุนี้จึงไม่ใช่ความคิดที่ดีที่จะใช้ np.array สำหรับคำสั่งเฉพาะประเภท โครงสร้างอาร์เรย์มีประโยชน์ที่นี่ รายการเก็บรักษาชนิดข้อมูลของค่า

และสำหรับบางสิ่งที่ฉันพบค่อนข้างน่ารำคาญ: ชนิดข้อมูลถูกระบุว่าเป็นอาร์กิวเมนต์แรกในอาร์เรย์ () แต่ (ปกติ) อันดับที่สองใน np.array () : |

ความสัมพันธ์กับ C ถูกอ้างถึงที่นี่: Python List vs. Array - เมื่อใดควรใช้?

ขอให้สนุกกับการสำรวจ!

หมายเหตุ: ลักษณะที่พิมพ์และค่อนข้างเข้มงวดของอาร์เรย์โน้มไปทาง C มากกว่า Python และโดยการออกแบบ Python ไม่มีข้อ จำกัด เฉพาะหลายประเภทในการทำงาน ความไม่เป็นที่นิยมของมันยังสร้างผลตอบรับเชิงบวกในการทำงานร่วมกันและการแทนที่มันส่วนใหญ่เกี่ยวข้องกับ [int (x) สำหรับ x ในไฟล์] ดังนั้นจึงเป็นไปได้ทั้งหมดและมีเหตุผลที่จะไม่สนใจการดำรงอยู่ของอาร์เรย์ ไม่ควรขัดขวางพวกเราส่วนใหญ่ในทางใดทางหนึ่ง : D



6

งูหลามเรียกพวกเขารายการ คุณสามารถเขียนรายการตามตัวอักษรด้วยเครื่องหมายวงเล็บและจุลภาค:

>>> [6,28,496,8128]
[6, 28, 496, 8128]

5

ต่อจากเลนนาร์ทนอกจากนี้ยังมีnumpyซึ่งการดำเนินการอาร์เรย์หลายมิติที่เป็นเนื้อเดียวกัน


4

ฉันมีชุดของสตริงและต้องการอาร์เรย์ที่มีความยาวเท่ากันของบูลีนที่เริ่มต้นเป็น True นี่คือสิ่งที่ฉันทำ

strs = ["Hi","Bye"] 
bools = [ True for s in strs ]

ฉันมาที่นี่เพราะฉันต้องการประกาศ C: int count[26]={0}; อาจเป็นวิธีที่ดีกว่า แต่ตัวแปรboolsจากด้านบนนี้ใช้งานได้ใน count=[0 for ii in range(26)]ภายหลังจากนั้นฉันเปลี่ยนเป็นรูปแบบcount=[0]*26ที่ดีกว่า
user1683793

2

คุณสามารถสร้างรายการและแปลงเป็นอาร์เรย์หรือคุณสามารถสร้างอาร์เรย์โดยใช้โมดูล numpy ด้านล่างเป็นตัวอย่างเล็ก ๆ น้อย ๆ ที่แสดงให้เห็นเหมือนกัน Numpy ยังช่วยให้ทำงานกับอาร์เรย์หลายมิติได้ง่ายขึ้น

import numpy as np
a = np.array([1, 2, 3, 4])

#For custom inputs
a = np.array([int(x) for x in input().split()])

นอกจากนี้คุณยังสามารถปรับเปลี่ยนอาร์เรย์นี้เป็นเมทริกซ์ 2X2 โดยใช้ฟังก์ชั่นการปรับรูปร่างที่ใช้ในการป้อนข้อมูลเป็นมิติของเมทริกซ์

mat = a.reshape(2, 2)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.