คำถามติดแท็ก python

Python เป็นภาษาการเขียนโปรแกรมแบบหลายกระบวนทัศน์แบบไดนามิกพิมพ์อเนกประสงค์ มันถูกออกแบบมาให้เรียนรู้เข้าใจและใช้งานได้อย่างรวดเร็วและบังคับใช้ไวยากรณ์ที่สะอาดและสม่ำเสมอ โปรดทราบว่า Python 2 สนับสนุนอย่างเป็นทางการตั้งแต่วันที่ 01-01-2020 สำหรับคำถาม Python เฉพาะรุ่นให้เพิ่มแท็ก [python-2.7] หรือ [python-3.x] เมื่อใช้ตัวแปรหรือไลบรารี Python (เช่น Jython, PyPy, Pandas, Numpy) โปรดรวมไว้ในแท็ก

6
ความแตกต่างระหว่างรูปร่างของ numpy.array (R, 1) และ (R,)
ในnumpyการดำเนินการ(R, 1)บางอย่างกลับมาเป็นรูปร่างแต่กลับมา(R,)บ้าง สิ่งนี้จะทำให้การคูณเมทริกซ์น่าเบื่อมากขึ้นเนื่องจากreshapeจำเป็นต้องใช้อย่างชัดเจน ตัวอย่างเช่นได้รับเมทริกซ์Mถ้าเราต้องการที่จะทำnumpy.dot(M[:,0], numpy.ones((1, R)))ที่ไหนRจำนวนแถว (แน่นอนปัญหาเดียวกันยังเกิดขึ้นคอลัมน์ฉลาด) เราจะได้รับmatrices are not alignedข้อผิดพลาดตั้งแต่M[:,0]อยู่ในรูปร่าง(R,)แต่อยู่ในรูปnumpy.ones((1, R))(1, R) ดังนั้นคำถามของฉันคือ: ความแตกต่างระหว่างรูปร่าง(R, 1)กับ(R,)อะไร ฉันรู้ว่ามันคือรายการของตัวเลขและรายการที่ทุกรายการมีเพียงตัวเลข เพียงแค่สงสัยว่าทำไมไม่ออกแบบnumpyเพื่อให้เหมาะกับรูปร่าง(R, 1)แทน(R,)การคูณเมทริกซ์ที่ง่ายขึ้น มีวิธีที่ดีกว่าสำหรับตัวอย่างข้างต้นหรือไม่ โดยไม่มีการปรับรูปร่างอย่างชัดเจน:numpy.dot(M[:,0].reshape(R, 1), numpy.ones((1, R)))

6
ตัวเลขคงที่หลังทศนิยมด้วย f- สตริง
มีวิธีง่าย ๆ ในการใช้ P-f-strings เพื่อกำหนดจำนวนหลักหลังจุดทศนิยมหรือไม่? (เฉพาะสตริง f ไม่ใช่ตัวเลือกการจัดรูปแบบสตริงอื่น ๆ เช่น. format หรือ%) ตัวอย่างเช่นสมมติว่าฉันต้องการแสดงตัวเลข 2 หลักหลังจุดทศนิยม ฉันจะทำอย่างไร สมมุติว่า a = 10.1234

6
รายการ Python การันตีว่ามีองค์ประกอบอยู่ในลำดับที่แทรกอยู่หรือไม่?
ถ้าฉันมีรหัสหลามต่อไปนี้ >>> x = [] >>> x = x + [1] >>> x = x + [2] >>> x = x + [3] >>> x [1, 2, 3] จะxรับประกันว่าจะเป็น[1,2,3]หรือจะเรียงลำดับองค์ประกอบระหว่างกาลอื่น ๆ ได้หรือไม่
318 python 

10
ทำการแมปค่าใหม่ในคอลัมน์หมีแพนด้าด้วย dict
ฉันมีพจนานุกรมที่มีลักษณะเช่นนี้: di = {1: "A", 2: "B"} ฉันต้องการใช้กับคอลัมน์ "col1" ของ dataframe ที่คล้ายกับ: col1 col2 0 w a 1 1 2 2 2 NaN ที่จะได้รับ: col1 col2 0 w a 1 A 2 2 B NaN ฉันจะทำสิ่งนี้ให้ดีที่สุดได้อย่างไร ด้วยเหตุผลบางอย่างของคำค้นหาของ Google ที่เกี่ยวข้องกับสิ่งนี้แสดงให้ฉันเห็นเฉพาะลิงก์เกี่ยวกับวิธีสร้างคอลัมน์จาก dicts และในทางกลับกัน: - /

13
รับผลิตภัณฑ์คาร์ทีเซียนของชุดรายการหรือไม่
ฉันจะรับผลิตภัณฑ์คาร์ทีเซียน (ทุกค่าที่เป็นไปได้รวมกัน) จากกลุ่มของรายการได้อย่างไร การป้อนข้อมูล: somelists = [ [1, 2, 3], ['a', 'b'], [4, 5] ] ผลลัพธ์ที่ต้องการ: [(1, 'a', 4), (1, 'a', 5), (1, 'b', 4), (1, 'b', 5), (2, 'a', 4), (2, 'a', 5) ...]

19
ข้อผิดพลาดของภาษา Python: การตั้งค่าภาษาที่ไม่รองรับ
ทำไมฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อทำสิ่งนี้ในไพ ธ อน: >>> import locale >>> print str( locale.getlocale() ) (None, None) >>> locale.setlocale(locale.LC_ALL, 'de_DE') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.7/locale.py", line 531, in setlocale return _setlocale(category, locale) locale.Error: unsupported locale setting ใช้ได้กับสถานที่อื่นเช่น fr หรือ nl เช่นกัน ฉันใช้ Ubuntu 11.04 อัปเดต: การทำสิ่งต่อไปนี้ไม่ได้ให้ผลใด …

6
ตรวจสอบว่าสตริงตรงกับรูปแบบ
ฉันจะตรวจสอบว่าสตริงตรงกับรูปแบบนี้ได้อย่างไร ตัวอักษรตัวพิมพ์ใหญ่, ตัวเลข (s), ตัวอักษรตัวพิมพ์ใหญ่, ตัวเลข (s) ... ตัวอย่างสิ่งเหล่านี้จะตรงกับ: A1B2 B10L1 C1N200J1 สิ่งเหล่านี้จะไม่ ('^' ชี้ไปที่ปัญหา) a1B2 ^ A10B ^ AB400 ^

7
วิธีการป้อน regex ใน string.replace?
ฉันต้องการความช่วยเหลือในการประกาศ regex อินพุตของฉันเป็นดังนี้: this is a paragraph with<[1> in between</[1> and then there are cases ... where the<[99> number ranges from 1-100</[99>. and there are many other lines in the txt files with<[3> such tags </[3> ผลลัพธ์ที่ต้องการคือ: this is a paragraph with in between and then there are cases ... …
317 python  regex  string  replace 

11
วิธีการเก็บดาต้าเฟรมโดยใช้ Pandas
ตอนนี้ฉันกำลังนำเข้าไฟล์ข้อมูลขนาดใหญ่พอสมควรCSVทุกครั้งที่เรียกใช้สคริปต์ มีวิธีแก้ปัญหาที่ดีในการทำให้ดาต้าเฟรมนั้นมีให้ใช้อย่างต่อเนื่องในระหว่างรันดังนั้นฉันไม่ต้องเสียเวลารอให้สคริปต์รันหรือไม่?
317 python  pandas  dataframe 

5
นุ่นสร้างคอลัมน์ใหม่ขึ้นอยู่กับค่าจากคอลัมน์อื่น ๆ / ใช้ฟังก์ชั่นของหลาย ๆ คอลัมน์แถวฉลาด
ฉันต้องการที่จะใช้ฟังก์ชั่นที่กำหนดเองของฉัน (จะใช้บันไดถ้า-อื่น) เหล่านี้หกคอลัมน์ ( ERI_Hispanic, ERI_AmerInd_AKNatv, ERI_Asian, ERI_Black_Afr.Amer, ERI_HI_PacIsl, ERI_White) ในแถวของ dataframe ของฉันในแต่ละ ฉันลองใช้วิธีการที่แตกต่างจากคำถามอื่น ๆ แต่ก็ยังหาคำตอบที่เหมาะสมสำหรับปัญหาของฉันไม่ได้ สิ่งสำคัญของเรื่องนี้คือถ้าบุคคลนั้นถูกนับว่าเป็นฮิสแปนิกพวกเขาจะไม่สามารถถูกนับเป็นสิ่งอื่นได้ แม้ว่าพวกเขาจะมี "1" ในคอลัมน์เชื้อชาติอื่นพวกเขายังคงถูกนับว่าเป็นฮิสแปนิกไม่ใช่สองเผ่าพันธุ์หรือมากกว่า ในทำนองเดียวกันหากผลรวมของคอลัมน์ ERI ทั้งหมดมากกว่า 1 พวกเขาจะถูกนับเป็นสองเชื้อชาติหรือมากกว่าและไม่สามารถนับได้ว่าเป็นเชื้อชาติที่ไม่ซ้ำกัน (ยกเว้นฮิสแปนิก) หวังว่านี่จะสมเหตุสมผล ความช่วยเหลือใด ๆ จะได้รับการชื่นชมอย่างมาก มันเกือบจะเหมือนกับการทำลูปผ่านแต่ละแถวและถ้าแต่ละเรคคอร์ดตรงตามเกณฑ์พวกมันจะถูกเพิ่มเข้าไปในรายการเดียวและตัดออกจากต้นฉบับ จาก dataframe ด้านล่างฉันจำเป็นต้องคำนวณคอลัมน์ใหม่ตามข้อมูลจำเพาะต่อไปนี้ใน SQL: ========================= เกณฑ์การตัดสิน ======================== ======= IF [ERI_Hispanic] = 1 THEN RETURN “Hispanic” ELSE IF SUM([ERI_AmerInd_AKNatv] + …
316 python  pandas  numpy  apply 

10
เกินข้อผิดพลาดของแพคเกจระดับสูงสุดในการนำเข้าที่เกี่ยวข้อง
ดูเหมือนว่ามีคำถามอยู่บ้างแล้วที่นี่เกี่ยวกับการนำเข้าสัมพัทธ์ในหลาม 3 แต่หลังจากผ่านหลาย ๆ คำถามแล้วฉันยังไม่พบคำตอบสำหรับปัญหาของฉัน ดังนั้นนี่คือคำถาม ฉันมีแพ็คเกจที่แสดงด้านล่าง package/ __init__.py A/ __init__.py foo.py test_A/ __init__.py test.py และฉันมีบรรทัดเดียวใน test.py: from ..A import foo ตอนนี้ฉันอยู่ในโฟลเดอร์ของpackageและฉันเรียกใช้ python -m test_A.test ฉันได้รับข้อความ "ValueError: attempted relative import beyond top-level package" แต่ถ้าฉันอยู่ในโฟลเดอร์พาเรนต์ของpackageเช่นฉันเรียกใช้: cd .. python -m package.test_A.test ทุกอย่างปกติดี. ตอนนี้คำถามของฉันคือ เมื่อผมอยู่ในโฟลเดอร์ของpackageและฉันเรียกใช้โมดูลภายใน test_A ย่อยแพคเกจเป็นtest_A.testอยู่บนพื้นฐานของความเข้าใจของฉัน..Aขึ้นไปเพียงระดับหนึ่งซึ่งยังคงอยู่ในโฟลเดอร์ทำไมจะให้ข้อความบอกว่าpackage beyond top-level packageอะไรคือสาเหตุที่ทำให้เกิดข้อความแสดงข้อผิดพลาดนี้?
316 python  import  package 


15
ฉันจะรันการทดสอบหน่วย Python ทั้งหมดในไดเรกทอรีได้อย่างไร
ฉันมีไดเรกทอรีที่มีการทดสอบหน่วย Python ของฉัน โมดูลหน่วยทดสอบแต่ละที่ของรูปแบบการทดสอบ _ *. PY ฉันกำลังพยายามสร้างไฟล์ที่เรียกว่าall_test.pyซึ่งจะช่วยให้คุณเดาได้ว่ารันไฟล์ทั้งหมดในแบบทดสอบข้างต้นแล้วส่งคืนผลลัพธ์ ฉันได้ลองสองวิธีจนถึงตอนนี้ ทั้งสองล้มเหลว ฉันจะแสดงสองวิธีและฉันหวังว่าจะมีคนรู้วิธีการทำอย่างถูกต้อง สำหรับความพยายามที่กล้าหาญครั้งแรกของฉันฉันคิดว่า "ถ้าฉันเพียงนำเข้าโมดูลการทดสอบทั้งหมดของฉันในไฟล์แล้วเรียกunittest.main()doodad นี้มันจะทำงานใช่มั้ย" เอาล่ะฉันคิดผิด import glob import unittest testSuite = unittest.TestSuite() test_file_strings = glob.glob('test_*.py') module_strings = [str[0:len(str)-3] for str in test_file_strings] if __name__ == "__main__": unittest.main() สิ่งนี้ไม่ทำงานผลลัพธ์ที่ฉันได้คือ: $ python all_test.py ---------------------------------------------------------------------- Ran 0 tests in 0.000s OK สำหรับการลองครั้งที่สองของฉันฉันก็โอเคบางทีฉันอาจจะลองทำแบบทดสอบทั้งหมดนี้ในแบบ "แมนนวล" …

2
ตรวจสอบว่ามีบางสิ่ง (ไม่) ในรายการใน Python
ฉันมีรายการ tuples ในPythonและมีเงื่อนไขที่ฉันต้องการนำสาขาเท่านั้นหาก tuple ไม่อยู่ในรายการ (ถ้าอยู่ในรายการจากนั้นฉันไม่ต้องการใช้สาขาถ้า) if curr_x -1 > 0 and (curr_x-1 , curr_y) not in myList: # Do Something แม้ว่ามันจะไม่ได้ผลสำหรับฉัน ฉันทำอะไรผิด

8
การสร้างหมีแพนด้าแบบมีเงื่อนไขของคอลัมน์ series / dataframe
ฉันมีชื่อไฟล์ตามบรรทัดด้านล่าง: Type Set 1 A Z 2 B Z 3 B X 4 C Y ฉันต้องการเพิ่มคอลัมน์อีกคอลัมน์หนึ่งลงใน dataframe (หรือสร้างชุดข้อมูล) ที่มีความยาวเท่ากับ dataframe (= จำนวนระเบียน / แถวเท่ากัน) ซึ่งตั้งค่าสีเขียวถ้า Set = 'Z' และ 'red' ถ้า Set = เป็นอย่างอื่น . วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร?

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