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

NumPy เป็นส่วนขยายการคำนวณทางวิทยาศาสตร์และตัวเลขเป็นภาษาโปรแกรม Python

7
วิธีคัดลอกข้อมูลจากอาร์เรย์ numpy ไปยังอื่น
วิธีที่เร็วที่สุดในการคัดลอกข้อมูลจากอาร์เรย์ b ไปยังอาร์เรย์ a คืออะไรโดยไม่ต้องแก้ไขที่อยู่ของอาร์เรย์ a. ฉันต้องการสิ่งนี้เนื่องจากไลบรารีภายนอก (PyFFTW) ใช้ตัวชี้ไปยังอาร์เรย์ของฉันที่ไม่สามารถเปลี่ยนแปลงได้ ตัวอย่างเช่น: a = numpy.empty(n, dtype=complex) for i in xrange(a.size): a[i] = b[i] เป็นไปได้ที่จะทำโดยไม่ต้องวนซ้ำ?
87 python  numpy 

13
ValueError: numpy.dtype มีขนาดไม่ถูกต้องลองคอมไพล์ใหม่
ฉันเพิ่งติดตั้งแพกเกจแพนด้าและ statsmodels ใน python 2.7 เมื่อฉันลอง "นำเข้าแพนด้าเป็น pd" ข้อความแสดงข้อผิดพลาดนี้ปรากฏขึ้น ใครสามารถช่วย? ขอบคุณ !!! numpy.dtype has the wrong size, try recompiling Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\analytics\ext\python27\lib\site-packages\statsmodels-0.5.0-py2.7-win32.egg\statsmodels\formula\__init__.py", line 4, in <module> from formulatools import handle_formula_data File "C:\analytics\ext\python27\lib\site-packages\statsmodels-0.5.0-py2.7-win32.egg\statsmodels\formula\formulatools.p y", line 1, in <module> import statsmodels.tools.data as …

11
เมทริกซ์ขนาดใหญ่มากโดยใช้ Python และ NumPy
NumPyเป็นไลบรารีที่มีประโยชน์อย่างมากและจากการใช้งานฉันพบว่ามันสามารถจัดการเมทริกซ์ที่มีขนาดค่อนข้างใหญ่ (10,000 x 10,000) ได้อย่างง่ายดาย แต่เริ่มที่จะต่อสู้กับสิ่งที่ใหญ่กว่ามาก (พยายามสร้างเมทริกซ์ 50000 x 50000 ล้มเหลว) เห็นได้ชัดว่านี่เป็นเพราะความต้องการหน่วยความจำขนาดใหญ่ มีวิธีสร้างเมทริกซ์ขนาดใหญ่ใน NumPy (พูด 1 ล้านคูณ 1 ล้าน) ด้วยวิธีใดวิธีหนึ่ง (โดยไม่ต้องมี RAM หลายเทอราไบต์)
86 python  matrix  numpy 

4
ฉันจะพล็อตฮิสโตแกรมเพื่อให้ความสูงของแท่งรวมเป็น 1 ใน matplotlib ได้อย่างไร
ฉันต้องการพล็อตฮิสโตแกรมปกติจากเวกเตอร์โดยใช้ matplotlib ฉันลองทำสิ่งต่อไปนี้: plt.hist(myarray, normed=True) เช่นเดียวกับ: plt.hist(myarray, normed=1) แต่ทั้งสองตัวเลือกไม่ได้สร้างแกน y จาก [0, 1] ดังนั้นความสูงของแท่งฮิสโตแกรมถึง 1 ฉันต้องการสร้างฮิสโตแกรมแบบนี้ - ฉันจะทำได้อย่างไร?

5
x [x <2] = 0 หมายความว่าอะไรใน Python
ฉันเจอรหัสที่มีบรรทัดคล้ายกับ x[x&lt;2]=0 เมื่อเล่นกับรูปแบบต่างๆฉันยังคงติดอยู่กับสิ่งที่ไวยากรณ์นี้ทำ ตัวอย่าง: &gt;&gt;&gt; x = [1,2,3,4,5] &gt;&gt;&gt; x[x&lt;2] 1 &gt;&gt;&gt; x[x&lt;3] 1 &gt;&gt;&gt; x[x&gt;2] 2 &gt;&gt;&gt; x[x&lt;2]=0 &gt;&gt;&gt; x [0, 2, 3, 4, 5]

2
การจัดทำดัชนีแปลก ๆ โดยใช้จำนวนมาก
ฉันมีตัวแปร x นั่นคือรูปร่าง (2,2,50,100) ฉันยังมีอาร์เรย์ y ที่เท่ากับ np.array ([0,10,20]) สิ่งประหลาดเกิดขึ้นเมื่อฉันทำดัชนี x [0,:,:,, y] x = np.full((2,2,50,100),np.nan) y = np.array([0,10,20]) print(x.shape) (2,2,50,100) print(x[:,:,:,y].shape) (2,2,50,3) print(x[0,:,:,:].shape) (2,50,100) print(x[0,:,:,y].shape) (3,2,50) ทำไมหนึ่งเอาต์พุตสุดท้าย (3,2,50) และไม่ใช่ (2,50,3)
27 python  numpy 

3
ข้อผิดพลาดแปลก ๆ ใน Pandas และ Numpy เกี่ยวกับมัลติเธรด
ฟังก์ชั่นส่วนใหญ่ของ Numpy จะเปิดใช้งานมัลติเธรดโดยค่าเริ่มต้น ตัวอย่างเช่นฉันทำงานบนเวิร์กสเตชัน intel 8-core intel ถ้าฉันเรียกใช้สคริปต์ import numpy as np x=np.random.random(1000000) for i in range(100000): np.sqrt(x) linux topจะแสดงการใช้งาน cpu 800% ในระหว่างการทำงาน ซึ่งหมายความว่า numpy ตรวจพบโดยอัตโนมัติว่าเวิร์กสเตชันของฉันมี 8 คอร์และnp.sqrtใช้ทั้ง 8 คอร์โดยอัตโนมัติเพื่อเร่งการคำนวณ อย่างไรก็ตามฉันพบข้อผิดพลาดแปลก ๆ ถ้าฉันเรียกใช้สคริปต์ import numpy as np import pandas as pd df=pd.DataFrame(np.random.random((10,10))) df+df x=np.random.random(1000000) for i in range(100000): np.sqrt(x) การใช้ …
25 python  pandas  numpy 

2
Python ผลการเปลี่ยนแปลงในระหว่างการคำนวณ cv2.Rodrigues
ถ้าฉันวิ่ง: import numpy as np import cv2 def changes(): rmat=np.eye(4) tvec=np.zeros(3) (rvec, jacobian)=cv2.Rodrigues(rmat) print rvec for i in range(2): changes() ฉันเข้าใจ: [[6.92798859e-310] [2.19380404e-316] [1.58101007e-322]] [[0.] [0.] [0.]] ดังนั้นผลลัพธ์จากchanges()การเปลี่ยนแปลง ฉันไม่เข้าใจว่าทำไมถึงเป็นเช่นนั้นและความจริงที่ว่ามันหยุดการเปลี่ยนแปลงหากtvec=np.zeros(3)มีการใส่ความคิดเห็นลงใน บรรทัดทำให้ฉันรู้สึกว่านี่เป็นข้อผิดพลาดในระบบ

8
numpy 1D array: องค์ประกอบหน้ากากที่ทำซ้ำได้มากกว่า n ครั้ง
กำหนดอาร์เรย์ของจำนวนเต็มเช่น [1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5] ฉันต้องการปกปิดองค์ประกอบที่ทำซ้ำหลายNครั้ง ในการชี้แจง:เป้าหมายหลักคือการดึงข้อมูลมาสก์อาร์เรย์บูลีนเพื่อใช้ในการคำนวณ binning ในภายหลัง ฉันคิดวิธีแก้ปัญหาที่ค่อนข้างซับซ้อน import numpy as np bins = np.array([1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5]) …
18 python  arrays  numpy  binning 

4
การเปรียบเทียบรายการในสองคอลัมน์แถวอย่างชาญฉลาด
เมื่อมี Panda DataFrame เช่นนี้: import pandas as pd import numpy as np df = pd.DataFrame({'today': [['a', 'b', 'c'], ['a', 'b'], ['b']], 'yesterday': [['a', 'b'], ['a'], ['a']]}) today yesterday 0 ['a', 'b', 'c'] ['a', 'b'] 1 ['a', 'b'] ['a'] 2 ['b'] ['a'] ... etc แต่มีประมาณ 100,000 รายการฉันกำลังมองหาการเพิ่มและการลบของรายการเหล่านั้นในสองคอลัมน์ในแถวที่ชาญฉลาด มันเปรียบได้กับคำถามนี้: Pandas: วิธีเปรียบเทียบคอลัมน์ของรายการ Row-wise …

1
ทำไม np.dot ไม่แม่นยำ? (อาร์เรย์ n-dim)
สมมติว่าเราใช้np.dotสอง'float32'อาร์เรย์สองมิติ: res = np.dot(a, b) # see CASE 1 print(list(res[0])) # list shows more digits [-0.90448684, -1.1708503, 0.907136, 3.5594249, 1.1374011, -1.3826287] เบอร์ ยกเว้นพวกเขาสามารถเปลี่ยน: กรณีที่ 1 : ฝานa np.random.seed(1) a = np.random.randn(9, 6).astype('float32') b = np.random.randn(6, 6).astype('float32') for i in range(1, len(a)): print(list(np.dot(a[:i], b)[0])) # full shape: (i, 6) [-0.9044868, -1.1708502, …
15 python  c  arrays  numpy  precision 


2
numpy.unique ให้เอาต์พุตที่ไม่ถูกต้องสำหรับรายการชุด
ฉันมีรายการชุดที่กำหนดโดย sets1 = [{1},{2},{1}] เมื่อฉันค้นหาองค์ประกอบเฉพาะในรายการนี้โดยใช้ numpy ของuniqueฉันจะได้รับ np.unique(sets1) Out[18]: array([{1}, {2}, {1}], dtype=object) ดังที่เห็นได้ว่าผลลัพธ์ไม่ถูกต้องเหมือนที่{1}ทำซ้ำในผลลัพธ์ เมื่อฉันเปลี่ยนลำดับในอินพุตโดยการทำให้องค์ประกอบที่คล้ายกันติดกันสิ่งนี้จะไม่เกิดขึ้น sets2 = [{1},{1},{2}] np.unique(sets2) Out[21]: array([{1}, {2}], dtype=object) ทำไมสิ่งนี้ถึงเกิดขึ้น? หรือมีบางอย่างผิดปกติในแบบที่ฉันเคยทำ?
14 python  list  numpy  set 

5
ตรวจสอบว่าอาร์เรย์ numpy มี 0 ในทุกเส้นขอบ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน14 วันที่ผ่านมา สิ่งที่จะเป็นวิธีที่เร็วที่สุดในการตรวจสอบว่าอาร์เรย์ที่มีหลายมิติมี 0 ในทุกด้าน ดังนั้นสำหรับตัวอย่างง่ายๆ 2 มิติฉันมี: x = np.random.rand(5, 5) assert np.sum(x[0:, 0]) == 0 assert np.sum(x[0, 0:]) == 0 assert np.sum(x[0:, -1]) == 0 assert np.sum(x[-1, 0:]) == 0 แม้ว่านี่จะโอเคสำหรับกรณี 2 มิติไปทางขวาการเขียนสำหรับมิติที่สูงกว่านั้นค่อนข้างน่าเบื่อและฉันก็สงสัยว่ามีเคล็ดลับที่ฉลาดพอสมควรที่ฉันสามารถใช้ที่นี่เพื่อทำให้มันมีประสิทธิภาพและบำรุงรักษาได้มากกว่า
13 python  numpy 

3
แพนด้า DataFrame MultiIndex ที่ช้า
ฉันมี DataFrame ของแบบฟอร์มแพนด้า: id start_time sequence_no value 0 71 2018-10-17 20:12:43+00:00 114428 3 1 71 2018-10-17 20:12:43+00:00 114429 3 2 71 2018-10-17 20:12:43+00:00 114431 79 3 71 2019-11-06 00:51:14+00:00 216009 100 4 71 2019-11-06 00:51:14+00:00 216011 150 5 71 2019-11-06 00:51:14+00:00 216013 180 6 92 2019-12-01 00:51:14+00:00 114430 19 7 …

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